Mat*_*iby 13 ruby-on-rails ruby-on-rails-3
所以我有一个帖子和一个用户.
发布has_many用户,用户发布帖子.
我需要一个查找,找到所有没有任何用户的帖子,如下所示:
Post.first.users
=> []
Run Code Online (Sandbox Code Playgroud)
Dyl*_*kow 28
Post.where("id not in (select post_id from users)")
Run Code Online (Sandbox Code Playgroud)
Jos*_*ach 19
今天就学到了这个:
Post.eager_load(:users).merge(User.where(id: nil))
Run Code Online (Sandbox Code Playgroud)
至少可以使用Rails 4+.
更新:
在Rails 5+中,您可以使用left_joins:
Post.left_joins(:users).merge(User.where(id: nil))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7019 次 |
| 最近记录: |