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

The*_* Oz 0 ruby-on-rails

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

u = User.joins(:posts).where('posts.size = ?', 0)
Run Code Online (Sandbox Code Playgroud)

输出:

PG::UndefinedColumn: ERROR:  column posts.size does not exist
Run Code Online (Sandbox Code Playgroud)

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

apn*_*ing 5

必须在没有连接的情况下这样做,如下所示:

 User.where(Post.where("posts.user_id = users.id").exists.not)
Run Code Online (Sandbox Code Playgroud)

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


创建SQL如:

SELECT "users".* FROM "users"  
WHERE (
  NOT (
    EXISTS (SELECT "posts".* FROM "posts"  WHERE (posts.user_id = users.id))
  )
)
Run Code Online (Sandbox Code Playgroud)