Prevenção de consultas N + 1 no Rails
Vi alguns exemplos de como passar um:include
valor hash ao chamar um dos @ da ActiveRecofind
métodos no Rails. No entanto, não vi exemplos de se isso é possível por meio de métodos de relacionamento. Por exemplo, digamos que eu tenha o seguinte:
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
Todos os exemplos que eu vejo mostram código assim:
User.find(:all, :include => :favorite)
Mas não vejo exemplos que mostrem o uso de relacionamentos. Em vez disso, seria possível fazer algo assim?
User.favorites(:include => :user)