交叉模型范围 - 轨道3

时间:2011-07-16 11:59:46

标签: ruby-on-rails-3 scope rails-models

我想为没有评论的所有帖子创建一个范围...我不明白,在模型中(通过创建范围),我可以检查我的帖子是否附加了任何评论,因为只有评论似乎知道他们属于哪个帖子,而不是帖子知道什么评论属于它。

Post
has_many :comments

Comments
belong_to :post

(如果我错了,请阻止我。)

1 个答案:

答案 0 :(得分:1)

使用sql

Post.includes(:comments).where("comments.id is NULL")

所以范围是

scope :without_comments, includes(:comments).where("comments.id is NULL")

但最好在counter_cache使用{{1}}:http://railscasts.com/episodes/23-counter-cache-column