Ruby on Rails

Requêtes ActiveRecord avancées

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

28 questions d'entretien·
Confirmé
1

Quelle méthode ActiveRecord permet de récupérer un enregistrement par sa clé primaire et lève une exception si non trouvé ?

Réponse

La méthode find récupère un enregistrement par sa clé primaire et lève une exception ActiveRecord::RecordNotFound si l'enregistrement n'existe pas. Cela permet de garantir que le code échoue explicitement plutôt que de continuer avec une valeur nil. Pour éviter l'exception et retourner nil à la place, utiliser find_by(id: value).

2

Quelle est la différence principale entre find_by et where.first dans ActiveRecord ?

Réponse

find_by retourne directement un seul enregistrement ou nil, tandis que where.first retourne une relation ActiveRecord puis appelle first pour obtenir le premier résultat. En pratique, find_by génère une requête avec LIMIT 1 optimisée, alors que where peut potentiellement charger plus de données avant de sélectionner le premier élément.

3

Comment passer des conditions multiples à la méthode where en ActiveRecord ?

Réponse

La méthode where accepte un hash avec plusieurs clés pour spécifier des conditions multiples qui seront combinées avec AND. Par exemple, User.where(status: 'active', role: 'admin') génère WHERE status = 'active' AND role = 'admin'. Pour des conditions OR, utiliser or ou des requêtes SQL brutes.

4

Qu'est-ce que le problème N+1 en ActiveRecord ?

5

Quelle méthode utiliser pour résoudre le problème N+1 en préchargeant les associations ?

+25 questions d'entretien

Maîtrise Ruby on Rails pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement