ruby
1User.joins(:user_items).where({user_items: {item_id: [1,2]}})
とゆう風にもできますが
せっかくなので
ruby
1User.joins(:items).where({items: {id: [1,2]}})
とした方がわかりやすいし
さらにmergeを使って
ruby
1User.joins(:items).merge(Item.where(id: [1,2]))
と書くと文字通り
集合Userと集合Item.where(id: [1,2])をマージ(共通部分をとる)という
中学で習ったベン図のイメージになり、よりRubyonRailsらしい
わかりやすい記述になります。
mergeはこのような簡単なところではいまいち有用性がわかりませんが。
関連レコードのscopeを使って複雑なSQLを書くときに重宝します。
いちいちuser.rbで定義し直さなくてもItemのscopeが使えるのです。
覚えておいて損はありませんよ
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/13 04:36
2017/04/13 04:44 編集