2013-12-09

ActiveRecordでjoinしたテーブルのカラムでwhere条件を指定するとき

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ActiveRecordで他のテーブルをjoinしたときに、joinした側のテーブルにあるカラムを条件として使いたいときに、以下のようにしていました。

Order.joins(:user).where("users.name='viva'")


で、mergeを使って以下のようにも書けるということを知りました。


Order.joins(:user).merge(User.where(:name=>'viva')


以下が参考になりました。
http://api.rubyonrails.org/classes/ActiveRecord/SpawnMethods.html#method-i-merge


どっちもタイプする長さはあんまり変わらなかったので、そのときの気分で当面はどっちを使うか決めようかと思います。


      
      

0 件のコメント: