Ruby on Rails

Advanced ActiveRecord Queries

Query interface, where, joins, includes, eager loading, N+1 problem, transactions, locking (optimistic/pessimistic)

28 câu hỏi phỏng vấn·
Mid-Level
1

Which ActiveRecord method retrieves a record by its primary key and raises an exception if not found?

Câu trả lời

The find method retrieves a record by its primary key and raises an ActiveRecord::RecordNotFound exception if the record does not exist. This ensures the code fails explicitly rather than continuing with a nil value. To avoid the exception and return nil instead, use find_by(id: value).

2

What is the main difference between find_by and where.first in ActiveRecord?

Câu trả lời

find_by directly returns a single record or nil, while where.first returns an ActiveRecord relation then calls first to get the first result. In practice, find_by generates an optimized query with LIMIT 1, whereas where can potentially load more data before selecting the first element.

3

How to pass multiple conditions to the where method in ActiveRecord?

Câu trả lời

The where method accepts a hash with multiple keys to specify multiple conditions that will be combined with AND. For example, User.where(status: 'active', role: 'admin') generates WHERE status = 'active' AND role = 'admin'. For OR conditions, use or or raw SQL queries.

4

What is the N+1 problem in ActiveRecord?

5

Which method to use to solve the N+1 problem by preloading associations?

+25 câu hỏi phỏng vấn

Nắm vững Ruby on Rails cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí