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, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기