如何查询具有2个或更多注释的帖子

时间:2015-02-10 05:16:24

标签: ruby-on-rails ruby activerecord

如果我有以下内容:

class Post < ActiveRecord::Base
  has_many :comments
end


class Comment < ActiveRecord::Base
  belongs_to :post
end

如何查询包含2条或更多评论的帖子?我想在数据库中而不是Ruby中执行此操作。

1 个答案:

答案 0 :(得分:2)

如果您在此关联上设置counter cache,这将非常简单且可能更快:

Post.where('comments_count >= ?', 2)

如果您没有此计数器缓存,则需要执行以下操作:

Post.select('posts.*').joins(:comments).group('posts.id').
     having('COUNT(comments.id) >= ?', 2)