如果我有以下内容:
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
end
如何查询包含2条或更多评论的帖子?我想在数据库中而不是Ruby中执行此操作。
答案 0 :(得分:2)
如果您在此关联上设置counter cache,这将非常简单且可能更快:
Post.where('comments_count >= ?', 2)
如果您没有此计数器缓存,则需要执行以下操作:
Post.select('posts.*').joins(:comments).group('posts.id').
having('COUNT(comments.id) >= ?', 2)