
Requêtes ActiveRecord avancées
Query interface, where, joins, includes, eager loading, N+1 problem, transactions, locking (optimistic/pessimistic)
1Quelle méthode ActiveRecord permet de récupérer un enregistrement par sa clé primaire et lève une exception si non trouvé ?
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).
2Quelle est la différence principale entre find_by et where.first dans ActiveRecord ?
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.
3Comment passer des conditions multiples à la méthode where en ActiveRecord ?
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.
Qu'est-ce que le problème N+1 en ActiveRecord ?
Quelle méthode utiliser pour résoudre le problème N+1 en préchargeant les associations ?
+25 questions d'entretien
Autres sujets d'entretien Ruby on Rails
Les bases de Ruby
Programmation orientée objet en Ruby
Fondamentaux Rails
Routing & Controllers
Les bases d'ActiveRecord
Views & Templates ERB
Associations ActiveRecord
Formulaires Rails
Authentification & Autorisation
Asset Pipeline & Frontend moderne
Rails en mode API
Tests avec RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Stratégies de caching
Migrations avancées
Rails Engines & Apps modulaires
Optimisation des performances
Design Patterns Rails
Métaprogrammation Ruby
Sécurité Rails
GraphQL avec Rails
Déploiement & Production
Monitoring & Logging
Stratégies d'upgrade Rails
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