任何人都可以帮助我如何做范围的急切加载

时间:2013-06-28 07:37:52

标签: ruby-on-rails

示例:

has_many : comments
belongs_to : user
scope : more_no comments where(self.no_times >10)

查询:像这样我试过

User.includes(:comments).all.collect{|u| u.comments.more_no_comments}

但多次迭代

1 个答案:

答案 0 :(得分:0)

您必须定义自定义关联而不是范围,并将其用于预先加载:

has_many :more_no_comments, :class_name => 'Comment', -> { where "no_times > 10" }

然后

User.includes(:more_no_comments).all.collect{|u| u.comments.more_no_comments}

请参阅this question