假装我有一个模型,帖子has_many:评论。我怎样才能显示有评论的帖子?
我对named_scope感觉有点舒服,但我不知道如何将Post.comments(或self.comments)放在:期望符号的条件哈希中。
class Post < ActiveRecord::Base
has_many :comments
named_scope :with_comments, :conditions => [#self.comments.length > 0]
end
我在评论区写什么?
谢谢!
答案 0 :(得分:2)
您应该可以加入评论表,确保选择不同的行
named_scope :with_comments, :joins => :comments, :select => 'DISTINCT posts.*'
答案 1 :(得分:1)
最好是将post_cache放在Post上。
class Comment < AR:Base
belongs_to :post, :counter_cache => true
end
然后你只需要做1个查询而不是2个。
Post.find(:all, :conditions => ["counter_cache > 0"])