La prévention de N+1 requêtes dans les Rails

J'ai vu quelques exemples de passer un :include valeur de hachage lors de l'appel de l'un de ActiveRecord est find méthodes dans les Rails. Cependant, je n'ai pas vu des exemples de savoir si cela est possible, via la relation de méthodes. Par exemple, disons que j'ai le texte suivant:

def User < ActiveRecord::Base
  has_many :user_favorites
  has_many :favorites, :through => :user_favorites
end

def Favorite < ActiveRecord::Base
  has_many :user_favorites
  has_many :users, :through => :user_favorites
end

def UserFavorite < ActiveRecord::Base
  belongs_to :user
  belongs_to :favorite
end

Tous les exemples que je vois afficher le code comme ceci:

User.find(:all, :include => :favorite)

Mais je ne vois pas d'exemples montrant l'utilisation de relations. Serait-il plutôt être possible pour moi de faire quelque chose comme cela?

User.favorites(:include => :user)
Ces jours-ci, utiliser les puce.

OriginalL'auteur Matt Huggins | 2011-03-27