class Article
has_many :comments
end
class Comment
belongs_to :article
end
我希望能够确定某些文章存在多少评论总数。例如:文章#20,#21和#22之间总共有X条评论。
任何指针都会很棒!
答案 0 :(得分:2)
我建议:
Comment.where(:article_id => [20, 21, 22]).count
在数据库中进行计数等,并且在一个查询中(在这种情况下,ActiveRecord将会尽可能高效)。
答案 1 :(得分:0)
您可以在counter_cache
表
articles
class Article
has_many :comments, :counter_cache => true
end
并在comments_count
表格中添加articles
列。
(http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html)然后将其总结为。
Article.where(:id => [20,21,22]).sum(:comments_count)
答案 2 :(得分:0)
如果您愿意,可以在没有计数器缓存的情况下轻松完成此操作。
Article.where(:id => [20,21,22]).joins(:comments).count