前提・実現したいこと
Railsで指定した全ての要素をhas_many関連先に持つレコードを抽出したいと考えています。
Userは複数のアイテムを持ちます。
ruby
1class User 2 has_many: items 3end 4 5class Item 6 belongs_to: user 7end
そして、以下の表なテーブルがあったとして、
name が「apple」のitem と「orange」のitemのどちらも持つユーザーだけを検索したいです。
以下の表なテーブルの場合、Idが1のユーザーのみを検索したいです。
id | user_id | name |
---|---|---|
1 | 1 | apple |
2 | 1 | orange |
3 | 2 | apple |
4 | 2 | melon |
以下のコードを試しましたが、これだと「apple」 と 「orange」のいずれかを持つユーザーが検索されてしまいました。
ruby
1User.joins(:items).where(items: {name: ["apple","orange"]})
どなたかお力添えいただけないでしょうか
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/24 23:47 編集
2021/05/25 00:39
2021/05/25 11:11
2021/05/25 12:17 編集
2021/05/25 14:14