Câu hỏi phỏng vấn Ruby on Rails Developer

157 Các câu hỏi phỏng vấn Ruby on Rails Developer được chia sẻ bởi các ứng viên

Khám phá cách thành công trong cuộc phỏng vấn xin việc làm Ruby on Rails qua những bí quyết và kinh nghiệm hữu ích trong bài viết này.

Câu hỏi phỏng vấn chung 

Dưới đây là bốn câu hỏi phỏng vấn chung mà bạn có thể gặp khi xin việc về Ruby on Rails cùng với gợi ý cách trả lời:

Câu 1: "Bạn có kinh nghiệm làm việc với Ruby on Rails bao lâu và bạn đã làm những dự án nào trước đây?"

Cách trả lời: Trả lời một cách ngắn gọn về thời gian kinh nghiệm của bạn và những dự án quan trọng bạn đã tham gia. Hãy thêm một số chi tiết về vai trò của bạn trong những dự án đó và những công nghệ hoặc tính năng cụ thể bạn đã làm việc.

Câu 2: "Ruby on Rails có điểm mạnh gì và tại sao bạn chọn sử dụng nó?"

Cách trả lời: Liệt kê một số điểm mạnh của Ruby on Rails như tốc độ phát triển nhanh, sự mở và cộng đồng hỗ trợ mạnh mẽ. Sau đó, giải thích tại sao bạn chọn sử dụng nó trong dự án của mình và làm thế nào nó hỗ trợ mục tiêu công việc của bạn.

Câu 3: "Làm thế nào để bạn xử lý vấn đề bảo mật trong ứng dụng Ruby on Rails của bạn?"

Cách trả lời: Trình bày về các biện pháp bảo mật phổ biến mà bạn đã sử dụng trong ứng dụng của mình như xác thực người dùng, bảo vệ khỏi tấn công SQL injection và cross-site scripting (XSS), cùng với việc cập nhật thường xuyên các phiên bản Rails và gem.

Câu 4: "Bạn đã từng gặp vấn đề nào khi làm việc với Ruby on Rails và làm thế nào bạn đã giải quyết chúng?"

Cách trả lời: Nêu rõ một trường hợp cụ thể mà bạn đã gặp vấn đề khi làm việc với Ruby on Rails và giải thích cách bạn đã tiếp cận vấn đề đó. Chia sẻ cách bạn sử dụng tài liệu, cộng đồng, hoặc nguồn tài nguyên khác để tìm giải pháp và áp dụng nó thành công. Điều này cho thấy khả năng tự giải quyết và sự chuyên nghiệp của bạn.

Lưu ý rằng cách trả lời có thể thay đổi tùy theo kinh nghiệm và dự án của bạn, vì vậy hãy chắc chắn rằng bạn có thể đưa ra các ví dụ cụ thể và minh chứng để minh họa khả năng của mình trong việc làm việc với Ruby on Rails.

Câu hỏi phỏng vấn về thông tin cá nhân 

Dưới đây là ba câu hỏi phỏng vấn thường gặp về thông tin cá nhân và gợi ý cách trả lời:

Câu 1: Hãy tự giới thiệu một chút về bản thân bạn.

Cách trả lời: Bạn có thể bắt đầu bằng tên, quê quán, và sau đó nhấn mạnh các thành tựu hoặc kinh nghiệm quan trọng trong cuộc đời hoặc sự nghiệp của bạn. Ví dụ: "Tôi là [Tên], đến từ [Quê quán]. Tôi đã có [số năm] kinh nghiệm làm việc trong lĩnh vực [lĩnh vực công việc] và từng đảm nhận các vị trí như [vị trí công việc]."

Câu 2: Hãy cho chúng tôi biết về một thách thức lớn bạn đã đối mặt trong quá khứ và cách bạn đã xử lý nó.

Cách trả lời: Hãy chia sẻ một ví dụ cụ thể về một tình huống khó khăn bạn đã trải qua, cách bạn đã phân tích vấn đề, và các bước bạn đã thực hiện để giải quyết nó. Làm như vậy sẽ thể hiện khả năng xử lý áp lực và khả năng giải quyết vấn đề của bạn.

Câu 3: Bạn có những kỹ năng và phẩm chất gì mà bạn cho rằng sẽ làm bạn thành công trong vị trí công việc này?

Cách trả lời: Hãy liệt kê một số kỹ năng và phẩm chất mà bạn có, và sau đó kết nối chúng với vị trí công việc cụ thể mà bạn đang phỏng vấn. Ví dụ: "Tôi có kỹ năng tốt về quản lý thời gian và làm việc độc lập, điều này giúp tôi có khả năng hoàn thành công việc một cách hiệu quả và đảm bảo tiến độ. Tôi cũng rất tập trung vào chi tiết, điều này giúp tôi đảm bảo chất lượng công việc luôn đạt được tiêu chuẩn cao nhất."

Câu hỏi phỏng vấn về chuyên môn

Dưới đây là 4 câu hỏi phỏng vấn về chuyên môn của Ruby on Rails cùng với gợi ý cách trả lời:

Câu 1: Bạn có thể giải thích cách hoạt động của MVC trong Ruby on Rails không?

Trả lời gợi ý:

MVC (Model-View-Controller) là một kiến trúc phân lớp thường được sử dụng trong Ruby on Rails để tách biệt logic ứng dụng thành ba phần chính:

  • Model: Đây là phần chịu trách nhiệm quản lý dữ liệu của ứng dụng. Models thường đại diện cho các bảng trong cơ sở dữ liệu và xác định cách truy cập và tương tác với dữ liệu.
  • View: View chịu trách nhiệm hiển thị thông tin cho người dùng. Nó làm việc với dữ liệu được cung cấp bởi Model để tạo giao diện người dùng.
  • Controller: Controller là cầu nối giữa Model và View. Nó điều hướng các yêu cầu từ người dùng đến Model để lấy và cập nhật dữ liệu, sau đó trả về kết quả cho View để hiển thị. Controller cũng thực hiện xử lý logic ứng dụng."

Câu 2: Ruby on Rails sử dụng gem là gì và tại sao chúng quan trọng?

Trả lời gợi ý:

Trong Ruby on Rails, gem là một gói chứa mã nguồn tái sử dụng hoặc thư viện. Chúng quan trọng vì chúng giúp cung cấp các chức năng bổ sung và mở rộng cho ứng dụng một cách dễ dàng. RubyGems là trình quản lý gem mặc định trong Rails, cho phép bạn cài đặt, quản lý, và sử dụng các gem khác nhau. Sử dụng gem, bạn có thể thêm các tính năng như xác thực người dùng, xử lý hình ảnh, tích hợp với API bên ngoài, và nhiều chức năng khác mà không cần phải viết mã từ đầu, giúp tiết kiệm thời gian phát triển.

Câu 3: Làm thế nào để tối ưu hóa hiệu suất của một ứng dụng Ruby on Rails?

Trả lời gợi ý:

  • Để tối ưu hóa hiệu suất của một ứng dụng Ruby on Rails, có một số điểm quan trọng cần xem xét:
  • Caching: Sử dụng caching để lưu trữ kết quả tính toán hoặc dữ liệu thường xuyên truy cập để giảm tải cho cơ sở dữ liệu và tăng tốc độ phản hồi.
  • Database Optimization: Tối ưu hóa cơ sở dữ liệu bằng cách sử dụng chỉ mục, tối ưu hóa truy vấn SQL, và dùng công cụ hỗ trợ như ActiveRecord để làm việc với dữ liệu một cách hiệu quả.
  • Sử dụng Web Server và Application Server hiệu quả: Sử dụng các web server như Nginx hoặc Apache để phân phối tải và application server như Puma hoặc Unicorn để xử lý các yêu cầu của người dùng một cách hiệu quả.
  • Scaling: Khi ứng dụng trở nên phức tạp và có nhiều người dùng, xem xét sử dụng các giải pháp như load balancing và phân chia dịch vụ để tăng khả năng mở rộng.

Câu 4: Làm thế nào để xử lý bảo mật trong Ruby on Rails?

Trả lời gợi ý:

  • Bảo mật là một yếu tố quan trọng trong phát triển ứng dụng Ruby on Rails. Dưới đây là một số biện pháp quan trọng:
  • Xác thực và ủy quyền: Sử dụng các gem như Devise hoặc OmniAuth để quản lý xác thực người dùng và kiểm soát quyền truy cập.
  • Bảo vệ chống tấn công CSRF và XSS: Rails cung cấp bảo vệ mặc định chống tấn công Cross-Site Request Forgery (CSRF) và Cross-Site Scripting (XSS). Hãy đảm bảo rằng chúng đã được kích hoạt và sử dụng chúng đúng cách.
  • Bảo mật cơ sở dữ liệu: Sử dụng prepared statements hoặc Active Record để tránh tấn công SQL injection.
  • Bảo mật tài liệu tải lên: Kiểm tra và xác thực tài liệu tải lên từ người dùng để đảm bảo rằng chúng không chứa mã độc hại.
  • Quản lý biến môi trường: Đảm bảo rằng các biến môi trường như API keys và credentials được quản lý một cách an toàn."

Kinh nghiệm “đậu” phỏng vấn vị trí Ruby on Rails

Để đậu phỏng vấn vị trí Ruby on Rails, bạn cần hiểu sâu về ngôn ngữ Ruby và framework Rails, cũng như có khả năng giải quyết các vấn đề phát sinh trong quá trình phát triển ứng dụng web. Dưới đây là một số kinh nghiệm giúp bạn nâng cao khả năng "đậu" phỏng vấn Ruby on Rails:

  • Hiểu rõ Ruby on Rails: Học cơ bản về Ruby và Rails framework, bao gồm cách hoạt động của MVC (Model-View-Controller) và ActiveRecord, routing, middleware, và gem management.
  • Xây dựng dự án thực tế: Tạo các ứng dụng web dựa trên Ruby on Rails để thực hành kỹ năng. Điều này giúp bạn hiểu rõ cách áp dụng kiến thức vào thực tế.
  • Hiểu rõ RESTful routing: Biết cách sử dụng RESTful routing để quản lý tài nguyên trong ứng dụng Rails.
  • Thành thạo ActiveRecord: ActiveRecord là một phần quan trọng của Rails, nắm vững cách làm việc với cơ sở dữ liệu bằng ActiveRecord, bao gồm việc tạo, đọc, cập nhật và xóa dữ liệu.
  • Thao tác với Gem: Hiểu cách sử dụng các gem phổ biến như Devise (đăng nhập và xác thực), CarrierWave (quản lý tệp đính kèm), và RSpec (kiểm thử) trong dự án của bạn.
  • Kiểm thử: Biết cách viết kiểm thử bằng RSpec hoặc Minitest để đảm bảo tính ổn định của ứng dụng.
  • Hiểu về bảo mật: Nắm vững các khái niệm bảo mật như SQL injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), và cách bảo vệ ứng dụng khỏi các tấn công này.
  • Kiến thức về frontend: Hiểu cơ bản về HTML, CSS, JavaScript và jQuery, bởi vì Rails thường được sử dụng để phát triển ứng dụng web động.
  • Tìm hiểu về tối ưu hóa ứng dụng: Học cách tối ưu hóa hiệu suất ứng dụng Rails, bao gồm caching, indexing trong cơ sở dữ liệu, và sử dụng công cụ tối ưu hóa mã nguồn như New Relic.
  • Thực hành phỏng vấn: Tìm hiểu về các câu hỏi phỏng vấn phổ biến về Ruby on Rails và thực hành trả lời chúng. Điều này giúp bạn tự tin hơn khi phỏng vấn.
  • Dự án cá nhân: Nếu có thể, tham gia vào các dự án mã nguồn mở hoặc xây dựng ứng dụng cá nhân để thể hiện kỹ năng của bạn.
  • Thái độ và giao tiếp: Trong phỏng vấn, thể hiện tinh thần học hỏi, khả năng làm việc nhóm, và khả năng giao tiếp tốt.
  • Học từ phản hồi: Nếu bạn không đậu phỏng vấn, hãy hỏi người phỏng vấn về điểm yếu của bạn và cố gắng cải thiện chúng cho lần sau.

Nhớ rằng, việc đậu phỏng vấn không chỉ dựa vào kiến thức kỹ thuật, mà còn phụ thuộc vào cách bạn thể hiện bản thân và làm việc nhóm. Hãy tự tin, tập trung vào việc học và phát triển kỹ năng của bạn, và không bao giờ ngừng nỗ lực.

Câu hỏi phỏng vấn Ruby on Rails Developer & Cách trả lời

Dưới đây là 3 câu hỏi phỏng vấn Ruby on Rails Developer hàng đầu và cách trả lời chúng:

Câu hỏi #1: Framework là gì?

Framework là các đoạn code đã được viết sẵn, cấu thành nên một bộ khung và các thư viện lập trình được đóng gói

Câu hỏi #2: Ruby on rails là gì?

Ruby On rails là một Framework cho phép phát triển ứng dụng Web gồm 2 phần cơ bản:

Phần ngôn ngữ Ruby: "Ruby là một ngôn lập trình mã nguồn mở, linh hoạt, với một sự nổi bật về sự đơn giản dễ dùng và hữu ích. Nó có cú pháp "tao nhã" và tự nhiên dễ đọc và dễ dàng để viết".

Phần Framework Rails bao gồm nhiều thư viện liên kết.

Câu hỏi #3: Sự khác nhau giữa Class và Module?

  • Module nó giống như 1 cái thư viện, có thể sử dụng nơi nào cần nó, còn Class nó chỉ được sử dụng thông qua đối tượng thể hiện của nó.
  • Class có tính kế thừa còn Module thì không.
  • Ngược lại, Module có thể include vào bất cứ nơi nào trong khi Class thì chỉ có thể sử dụng thông qua object, ...

Câu hỏi phỏng vấn

Ruby on Rails Developer được hỏi... 13/06/2023

Phân biệt map, select, collect, reject, detect, each, inject?

1 câu trả lời

  • map và select: Chạy qua từng phần tử trong mảng và thực hiện câu lệnh trong block, sau đó return về mảng kết quả.
  • collect: return về 1 mảng từ mảng ban đầu với điều kiện trong block reject.
  • detect: trái ngược với collect, return về giá trị thõa mãn trong block, nếu có nhiều giá trị thì chỉ lấy giá trị gần nhất.
  • inject và each: đơn giản là chạy qua từng phần tử và thực hiện các câu lệnh trong block, không return gì cả.
Ruby on Rails Developer được hỏi... 13/06/2023

ActiveJob là gì? Khi nào ta sử dụng chúng?

1 câu trả lời

Active Jobs là một framework cho việc thiết lập các jobs và làm chúng có thể chạy trên nhiều backends.

Hiểu đơn giản hơn là nó sẽ tạo ra 1 luồng riêng giống trong Java để thực hiện một công việc khác mà không ảnh hưởng đến luồng chính. Điều đó làm tăng trải nghiệm người dùng.

Những jobs chủ yếu ở đây là việc đặt lịch dọn dẹp rác, hay việc tính toán phí hoặc gửi mail. Mọi thứ có thể được chia thành các phần nhỏ hơn của công việc để chạy song song. Điều đó có thể giúp tăng tốc độ hệ thống lên rất nhiều thay vì chạy theo cách truyền thống.

Active Job lần đầu tiên được giới thiệu trong Rails 4.2 như là một cách để chuẩn hóa giao diện cho một số tùy chọn hàng đợi đã có. Các hàng đợi phổ biến nhất được sử dụng trong các ứng dụng Rails là Sidekiq, Resque, và Delayed Job.

Active Job cho phép ứng dụng Rails của bạn làm việc với bất kỳ một trong số những hàng đợi kia (cũng như các hàng đợi khác) thông qua một giao diện chuẩn duy nhất.

Ruby on Rails Developer được hỏi... 13/06/2023

Sự khác nhau giữa Symbols và Strings

1 câu trả lời

Symbols Strings
Được dùng để định danh Được sử dụng để làm việc với data
Symbol đại diện cho 1 object không thay đổi. Mỗi sting là 1 object khác nhau
Sử dụng symbols như tên hay labels cho mọi thứ (như các methods, key của hash..) Sử dụng strings khi bạn quan tâm nhiều hơn về dữ liệu.
convert symbol qua string sử dụng method to_s Dùng method to_sym để convert từ string qua symbol
Ruby on Rails Developer được hỏi... 13/06/2023

Giả sử chúng ta có một Mdel với id = 4 đã bị xóa. Điều gì sẽ xảy ra cho câu query sau: Model.find(4) Model.find_by_id(4)

1 câu trả lời

Model.find(4) sẽ gây lỗi: ActiveRecord::RecordNotFound
Model.find_by_id(4) sẽ trả về nil và không gây lỗi

Ruby on Rails Developer được hỏi... 13/06/2023

Sự khác biệt giữa redirect và render trong Ruby on Rails

1 câu trả lời

Gọi tới render sẽ tạo một response đầy đủ trả về cho browser. Nếu không chỉ rõ render trong controller action, Rails sẽ tự động tìm kiếm và render template tương ứng dựa vào tên controller action.

Khác với render công việc của redirect_to là điều hướng browser, yêu cầu browser tạo một request mới đến một URL khác.

Ví dụ: redirect_to photos_url. Hoặc tới một website khác redirect_to "https://google.com".

Ruby on Rails Developer được hỏi... 13/06/2023

Rails engine là gì?

1 câu trả lời

Rails engine giống như một ứng dụng thu nhỏ, cung cấp các tính năng của nó cho parent application (Rails app sử dụng engine đó). Một số gems thường dùng trong các Rails app là các engines, ví dụ như Devise là engine cung cấp tính năng xác thực cho parent application, Solidus cung cấp nền tảng e-commerce.

Engine có cấu trúc gần tương tự một Rails app thông thường. Thực tế, Rails app cũng là một engine đặc biệt (Rails::Application kế thừa từ Rails::Engine). Mặc khác, engine cũng được đóng gói giống như một gem.

Khi xây dựng một ứng dụng có nhiều components phức tạp, sử dụng engine là một giải pháp để tách rời các component đó vào trong từng engine, như vậy việc phát triển sẽ trở nên tách bạch và dễ kiểm soát.

Ruby on Rails Developer được hỏi... 13/06/2023

Cách tạo một engine

1 câu trả lời

Tạo engine Foo trong thư mục vendor của main app, bỏ minitest và dùng mysql làm database engine:

rails plugin new vendor/foo --mountable -T -d mysql --dummy-path=spec/dummy

Có khá nhiều các tùy chọn khi tạo mới một engine, có thể xem đầy đủ bằng lệnh:

rails plugin --help

Engine được tạo ra là một mountable engine Foo::Engine nằm trong thư mục vendor/foo của parent app. Cấu trúc của engine này gần tương tự một Rails app với một số files quan trọng cần lưu ý:

  • app/ thư mục này tương tự app/ của một Rails app
  • config/routes.rb dành cho việc thiết lập các routes trong engine
  • foo.gemspec giống như gemspec của một gem, thay thế cho Gemfile
  • lib/foo/engine.rb nơi chưa các config liên quan đến engine

Vì engine được đóng gói như một gem nên để sử dụng engine với Rails app, chúng ta khai báo engine trong Gemfile của app như sau:

gem "foo", path: "vendor/foo"

Ruby on Rails Developer được hỏi... 13/06/2023

Một số khai báo cơ bản về test framework, các asset, template engines

1 câu trả lời

Một số khai báo cơ bản về test framework, các asset, template engines sẽ sử dụng:

config.generators do |g|
g.test_framework :rspec, fixture: false
g.fixture_replacement :factory_girl, dir: "spec/factories"
g.template_engine = :slim
g.javascript_engine = :coffee
g.stylesheet_engine = :scss
end

Ruby on Rails Developer được hỏi... 13/06/2023

Khai báo Gem Dependencies như thế nào?

1 câu trả lời

Engine có Gemfile giống như Rails app thông thường, tuy nhiên chúng ta sẽ không dùng Gemfile để khai báo gem dependencies vì engine có thể được cài đặt giống như một gem, và khi install một gem, các dependencies trong Gemfile sẽ bị bỏ qua. Thay vào đó, chúng ta sẽ khai báo gem dependencies trong .gemspec

Gem::Specification.new do |s|

# Specify Ruby version
s.required_ruby_version = "2.3.0"

# Gems that are used for all envinronments
s.add_dependency "rails", "~> 4.2.6"

# Gems that are used only for development
s.add_development_dependency "pry"

end

Một số gem đòi hỏi được require trước khi engine được load, có thể khai báo require các gem này trong engine.rb

require "some_lib"
require "another_lib"

module Foo
class Engine < ::Rails::Engine
isolate_namespace Foo
end
end

Ruby on Rails Developer được hỏi... 13/06/2023

Cách tạo engine bằng mountable engine và full engine

1 câu trả lời

Khi tạo engine, chúng ta có hai lựa chọn: tạo full engine hoặc tạo mountable engine

rails plugin new foo --mountable # create mountable engine
rails plugin new foo --full # create full engine

Điểm khác biệt lớn nhất giữa hai kiểu engine này là mountable engine hoạt động trong một namespace được cô lập, full engine thì không. Điều này sẽ dẫn tới những điểm khác nhau như sau:

  • mountable engine giống như một ứng dụng chạy song song với parent app, còn full engine thì tích hợp vào trong parent app
  • full engine chia sẻ models, views, controllers, helpers, và routes với parent app, mountable engine thì không
  • mountable engine sử dụng layout, js, css của riêng mình, full engine dùng chung với parent app
  • mountable engine cần được "mount" vào parent app thông qua config/routes.rb, full engine thì không

Phần lớn engine được dùng với mục đích tách rời các component để dễ maintain và tái sử dụng nên mountable engine là kiểu engine chủ yếu được sử dụng. Các bài viết trên Internet về engine cũng tập trung xoay quanh mountable engine.

Ruby on Rails Developer được hỏi... 15/06/2023

Rails hoạt động như thế nào sau khi có một request yêu cầu truy cập danh sách các bài viết trong ứng dụng viết blog ?

1 câu trả lời

Khi người dùng click vào button tạo ra một GET request đến URL /articles, web server nhận được request này. Sau đó Rails sẽ thực thi controller action tương ứng là index dựa trên URL/controlller được ánh xạ từ file routes.rb. Controller gọi Article.all để lấy các bản ghi articles trong database thông qua model Artical. Danh sách các bài viết này sẽ được gán vào một biến instance và biến này được gọi ra trên form để hiển thị danh sách các bài viết cho người dùng.

Ruby on Rails Developer được hỏi... 15/06/2023

Tại sao nó "Hầu hết mọi thứ trong Ruby đều là đối tượng (object)?"

1 câu trả lời

Trong lập trình hướng đối tượng, một đối tượng là một thể hiện của một lớp. Trong Ruby, tất cả các lớp là các thể hiện của Lớp Class. Ví dụ:

class => Fixnum
class.class => Class

Một vài thứ không phải là đối tượng như block (khối), method (phương thức) và conditional statements (câu lệnh điều kiện if, else...). Câu hỏi này được đặt ra để xem liệu bạn có hiểu hầu hết mọi thứ trong Ruby đều hoạt động tương tự nhau, điều này giúp Ruby dễ tiếp thu hơn các ngôn ngữ khác.

Ruby on Rails Developer được hỏi... 15/06/2023

Ruby là ngôn ngữ lập trình có kiểu tĩnh hay động ?

1 câu trả lời

Ruby là ngôn ngữ động. Đây là lý do tại sao bạn có thể thay đổi loại biến khi thực thi code. Trong Ruby, các dòng mã dứoiư đây chạy từng dòng một mà không gây ra lỗi.

x = 1
x = "foo"

Ruby on Rails Developer được hỏi... 15/06/2023

Bạn biết gì về getter và setter trong Ruby ?

1 câu trả lời

Một getter cho phép truy cập một biến instance. Một setter cho phép thiết lập một biến instance. Chúng ta có thể tự định nghĩa các phương thức setter và getter như dưới đây:

class Car
def color
@color
end
def color=(color)
@color = color
end
end
c = Car.new
c.color = 'red'
puts c.color # => red

Tuy nhiên, Ruby cung cấp ba phương thức accessor để thực hiện get và set một các nhanh gọn: attr_reader (getter), attr_writer (setter) và attr_accessor (setter và getter).

class Car
attr_accessor :color
end
c = Car.new
c.color = 'blue'
puts c.color #=> blue

Ruby on Rails Developer được hỏi... 15/06/2023

Điều gì xảy ra khi bạn gọi một phương thức trong Ruby ?

1 câu trả lời

Khi một method được gọi, Ruby sẽ xử lý lần lượt 2 công việc: tìm kiếm và thực thi. Đầu tiên nó sẽ tìm kiếm method bằng cách đi vào class của object (đối tượng), sau đó hãy di chuyển từ class đó đến class cha mà nó kế thừa, rồi từ class cha đó lại tiếp tục di chuyển đến class cha tiếp theo, cho đến khi gặp class tổ tiên cuối cùng là Object. Trên đường đi đó, nếu nó tìm được method đang được gọi thì sẽ dừng tìm kiếm và thực thi method đó. Nếu đến class cha cuối cùng vẫn không tìm thấy thì sẽ trả về method_missing và kết thúc tìm kiếm.

Ruby on Rails Developer được hỏi... 15/06/2023

Làm thế nào để lấy ra danh sách các routes của một ứng dụng Rails ?

1 câu trả lời

Mở terminal và chạy lệnh:

$ rake routes

Chúng ta cũng có thể thêm | grep <keyword> vào sau lệnh trên để lọc các routes có chứa keyword.

Ruby on Rails Developer được hỏi... 15/06/2023

Gemfile là gì ?

1 câu trả lời

Gemfile là một tệp nằm trong thư mục gốc của dự án, nơi đặc tả các dependencies (theo mình hiểu là các gem - thư viện) trong một ứng dụng Ruby.

Ruby on Rails Developer được hỏi... 15/06/2023

Gemfile.lock là gì ?

1 câu trả lời

Gemfile.lock là một tệp nằm trong thư mục gốc của dự án, nó chứa chính xác phiên bản của các gem được cài đặt. Nếu một máy khác clone dự án, nó cũng sẽ được cài đặt các phiên bản gem tương tự. Ngược lại, Gemfile không cần chỉ định phiên bản cụ thể của gem và sẽ cài đặt phiên bản mới nhất cho gem đó.

Ruby on Rails Developer được hỏi... 15/06/2023

Rails quản lý trạng thái database như thế nào ?

1 câu trả lời

Sau khi các file migration được generate và thêm intructions (các chỉnh sửa đối với các thuộc tính của bảng), các intructions này hướng dẫn ActiveRecord cách để sửa đổi trạng thái cơ sở dữ liệu hiện có.

Ruby on Rails Developer được hỏi... 15/06/2023

Sự khác biệt giữa count, length và size ?

1 câu trả lời

  • count: Thực hiện một truy vấn SQL để đếm số lượng bản ghi. Method này hữu ích nếu số lượng bản ghi có thể đã thay đổi trong DB so với bộ nhớ.
  • length: Trả về số lượng items trong collection của bộ nhớ. Nó nhanh hơn so với count vì không có database transaction nào được thực hiện. Nó cũng có thể được sử dụng để đếm các ký tự trong một chuỗi.
  • size: Đây là một alias của length và được sử dụng tương tự.
Đang xem 101 - 120 trong 157 câu hỏi phỏng vấn