在Rails中显示没有帖子的用户

时间:2015-05-12 08:24:48

标签: ruby-on-rails

如何查询尚未撰写任何帖子的用户? 这就是我想要的:

u = User.joins(:posts).where('posts.size = ?', 0)

输出:

PG::UndefinedColumn: ERROR:  column posts.size does not exist

试图绕过正确的SQL语法,但到目前为止没有运气

1 个答案:

答案 0 :(得分:5)

必须 在没有加入的情况下执行此操作,如下所示:

 User.where(Post.where("posts.user_id = users.id").exists.not)

它对链条件非常有用(比如应用不同的过滤器)。

创建SQL,如:

SELECT "users".* FROM "users"  
WHERE (
  NOT (
    EXISTS (SELECT "posts".* FROM "posts"  WHERE (posts.user_id = users.id))
  )
)