Rails includes est une méthode qui peut réduire considérablement le nombre d'accès lors de la récupération de données à partir de plusieurs tables associées.
ruby.rb
@events = @events.includes(:member)
Si vous donnez le nom de l'association à la méthode includes, elle sera associée immédiatement après la requête réelle. Lancement d'une requête pour obtenir des objets de modèle en masse Dans l'exemple ci-dessus: il émettra une requête pour obtenir les objets membres en masse.
En regardant le SQL émis ...
SELECT "staff_members".*FROM "staff_members"
WHERE "staff_members"."id" IN (1,2,3,4,5)
Un tel sql est émis. En d'autres termes, utilisez la clause where au lieu de sélectionner une par une. Une méthode pratique qui résout le problème N + 1 en émettant du SQL dans un lot.
Recommended Posts