选择comments.count> = 10的所有帖子

时间:2012-07-18 16:17:48

标签: mysql ruby-on-rails activerecord

One Post有很多评论。我想选择comments.count大于5的所有帖子。

像这样:Post.all.joins(:comments).having(“count> = 5”)

1 个答案:

答案 0 :(得分:3)

如果您在帖子表中添加comments_count列,请添加以下内容:

class Comment < ActiveRecord::Base
  belongs_to :post, :counter_cache => true
  ..
end

然后当您保存帖子时,它会更新计数器。在这一点上,查询很简单:

Post.where("comments_count >= ?", 5).all

或者,您可以使用纯SQL代码。但是男人,只是去专柜

相关:Rails query that sorts based on the count of a nested model?