У меня есть очень простой has_many_through ассоциации следующим образом:Rails - жадная загрузка с has_many_through ассоциации
class Retailer < ActiveRecord::Base
has_many :retailer_tags
has_many :tags, through: :retailer_tags
end
class Tag < ActiveRecord::Base
has_many :retailer_tags
has_many :retailers, through: :retailer_tags
end
class RetailerTag < ActiveRecord::Base
belongs_to :retailer
belongs_to :tag
end
В индексе моего контроллера розничной торговли, я хочу, чтобы отобразить список всех розничных торговцев с их соответствующими тегами. Если у меня только есть в контроллере @retailers = Retailer.all
, а затем прокрутите все розничные продавцы в моем представлении, у меня проблема с N + 1 запросами.
Я могу решить эту проблему напрямую, используя Postgresql, и она отлично работает, но я хотел бы понять, как это сделать в Rails.
Когда я делаю @retailers = Retailer.eager_load(retailer_tags: :tag).all
(или любой из включений/preload/join), я все равно получаю N + 1 запросов.
Что я делаю неправильно? Спасибо вам помочь
Работал отлично, спасибо, за исключением того, я должен был сделать: @retailers = Retailer.eager_load (: метки) .all – Alexandre