【发布时间】:2016-05-26 12:55:13
【问题描述】:
我有一个非常简单的 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(或任何包含/预加载/连接)时,我仍然会收到 N+1 个查询。
我做错了什么? 谢谢你的帮助
【问题讨论】:
标签: ruby-on-rails rails-activerecord