2012-09-30
Rails3のActiveRecordでOR検索をする
単純にwhereメソッドをメソッドチェインでつないでいくとAND検索になってしまう。
User.where(:owner_flg => true).where(:manager_flg => true)
# => SELECT `users`.* FROM `users` WHERE `users`.`owner_flg` = 1 AND `users`.`manager_flg` = 1;
OR
を使って、条件のいずれかに合致するためには以下のように書けばいい。
User.where('owner_flg = ? OR manager_flg = ?', true, true)
他にも方法はありそうだけど、とりあえず。