1

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

Post
has_many :comments

Comments
belong_to :post

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

4

1 回答 1

1

用 sql

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

所以范围是

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

但最好在counter_cache这里使用:http ://railscasts.com/episodes/23-counter-cache-column

于 2011-07-16T12:06:24.573 回答