Ruby on Rails

Advanced ActiveRecord Queries

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

28 interview questionsยท
Mid-Level
1

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

Answer

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?

Answer

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?

Answer

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 interview questions

Master Ruby on Rails for your next interview

Access all questions, flashcards, technical tests, code review exercises and interview simulators.

Start for free