Ruby on Rails

Advanced ActiveRecord Queries

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

28 คำถามสัมภาษณ์·
Mid-Level
1

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

คำตอบ

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?

คำตอบ

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?

คำตอบ

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 คำถามสัมภาษณ์

เชี่ยวชาญ Ruby on Rails สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี