【发布时间】:2019-02-10 05:32:01
【问题描述】:
模型结构:用户有很多订阅和博客,订阅有_many优惠券。 我已经包含了 has_many 表,但我需要为每个订阅执行状态检查 因此,如果我在作用域集合中执行 where 查询,那么它会让所有用户都只有有效的订阅。那么如何避免 N+1 查询并同时进行状态检查。
def scoped_collection
end_of_association_chain.includes(:subscriptions, :blogs)
end
index do
column :email
column "referrer" do |user|
subscription = user.subscriptions.valid.first
subscription.referrers.first.code if subscription
end
column "blog_id" do |user|
user.blog.id if user.blog
end
end
【问题讨论】:
-
subscription.valid 是什么?
-
Subscription.where(:state => 1)
-
请检查我的答案,如果它不起作用,请告诉我
-
@Vishal 它不起作用,我在评论中提到的原因请检查