在has_many关联中为“no children”创建named_scope

时间:2010-09-09 12:40:29

标签: ruby-on-rails activerecord named-scope has-many

我想为没有帖子的博客提供一个named_scope。

以下不起作用。

class Post < ActiveRecord::Base
  belongs_to :blog
end

class Blog < ActiveRecord::Base
  has_many :posts

  named_scope :has_no_posts, :conditions => "blogs.id NOT IN (SELECT blog_id FROM posts)"
end

2 个答案:

答案 0 :(得分:0)

你确定它不起作用吗?它对我有用。

答案 1 :(得分:0)

不确定为什么您的代码不起作用。它是错误还是没有回复你的期望?你可以发布它生成的sql吗?

但是你可以尝试:

named_scope :has_no_posts, :include => [:posts], :conditions => "posts.id IS NULL"