14-09-2010, 06:32 PM
(Modification du message : 14-09-2010, 06:38 PM par Sephi-Chan.)
Dans Rails, le comportement par défaut est de faire du lazy loading et tu peux forcer le eager loading :
Guides Ruby on Rails — Active Record Query Interface : Eager Loading Associations
Tu peux voir ça en action sur mon draft Spherium, je montre des exemples pour afficher la carte (à 50% de la page environ).
Je vais éditer pour te montrer quelques exemples de requêtes que ça donne (certaines sont vraiment flippantes).
# Je charge l'article avec ses commentaires.
@article = Article.find(params[:id]).includes(:comments)
# Mais tu peux faire un truc plus poilu :
# Ici je charge l'article, son auteur, ainsi que les commentaires de l'article et leur auteur, ainsi que
# les utilisateurs qui aiment le commentaires (en supposant qu'on puisse dire "J'aime ce commentaire").
@article = Article.find(params[:id]).includes([ :author, { :comments => { :author, :likers } } ])
Guides Ruby on Rails — Active Record Query Interface : Eager Loading Associations
Tu peux voir ça en action sur mon draft Spherium, je montre des exemples pour afficher la carte (à 50% de la page environ).
Je vais éditer pour te montrer quelques exemples de requêtes que ça donne (certaines sont vraiment flippantes).