OR検索とは
複数の条件を付して、どれかの条件に当てはまるレコードを取り出すには、whereのOR条件で検索します。
モデル名.where(カラム名: データ).or(テーブル名.where(カラム名: データ))
というように記述します。
*OR条件での検索は、Rails5以降で使えます。
参考例
[前提]name,age,genderの3つのカラムをもつUserテーブル
Userテーブルから、age => ’22’, name => ‘加藤’ この条件のどちらかに当てはまるレコードを取り出します。
[1] pry(main)> User.where(name: '加藤').or(User.where(age: '22'))
すると以下のように、当てはまった三つのレコードを取り出すことができました。
User Load (1.1ms) SELECT `users`.* FROM `users` WHERE (`users`.`name` = '加藤' OR `users`.`age` = 22)
=> [#<User:0x0000000148238248 id: 5, name: "山田", age: 22, gender: "men", created_at: Fri, 19 Nov 2021 10:15:21.815985000 UTC +00:00, updated_at: Fri, 19 Nov 2021 10:15:21.815985000 UTC +00:00>,
#<User:0x000000014822ed88 id: 7, name: "加藤", age: 38, gender: "men", created_at: Fri, 19 Nov 2021 10:15:21.820805000 UTC +00:00, updated_at: Fri, 19 Nov 2021 10:15:21.820805000 UTC +00:00>,
#<User:0x000000014822e310 id: 8, name: "加藤", age: 21, gender: "women", created_at: Fri, 19 Nov 2021 10:15:21.823235000 UTC +00:00, updated_at: Fri, 19 Nov 2021 10:15:21.823235000 UTC +00:00>]