2013-12-09

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

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

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

で、最近以下のようにも書けるということを知りました。

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

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

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


      
      
コメントを投稿