创建named_scope为"没有孩子"在的has_many协会 [英] Creating a named_scope for "no children" in a has_many association

查看:237
本文介绍了创建named_scope为"没有孩子"在的has_many协会的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想有一个named_scope的博客零的帖子。

以下是行不通的。

 类岗位<的ActiveRecord :: Base的
  belongs_to的:博客
结束

班级博客<的ActiveRecord :: Base的
  的has_many:帖子

  named_scope:has_no_posts,:条件=> blogs.id NOT IN(SELECT blog_id来自帖子)
结束
 

解决方案

不知道为什么你的code不起作用。是否错误或您所期望的不归?您可以发布它生成的SQL?

然而,你可以尝试:

  named_scope:has_no_posts,:包括=> [:帖子]:条件=> posts.id IS NULL
 

I would like to have a named_scope for blogs with zero posts.

The following does not work.

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

解决方案

Not sure why your code does not work. Does it error or not return what you expect? Can you post the sql it generates?

However you could try:

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

这篇关于创建named_scope为&QUOT;没有孩子&QUOT;在的has_many协会的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆