Prevención de consultas N + 1 en Rails
He visto algunos ejemplos de pasar una:include
valor hash cuando se llama a uno de los ActiveRecordfind
métodos en Rails. Sin embargo, no he visto ningún ejemplo de si esto es posible a través de métodos de relación. Por ejemplo, digamos que tengo lo siguiente:
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 los ejemplos que veo muestran un código como este:
User.find(:all, :include => :favorite)
Pero no veo ningún ejemplo que muestre el uso de las relaciones. ¿Sería posible para mí hacer algo como esto?
User.favorites(:include => :user)