【Rails】whereを使用して複数条件に対してAND検索する方法

AND検索とは

複数の条件をつけてレコードを検索したい際には、

モデル名.where(カラム名:データ).where(カラム名:データ)

のように、whereを繋げて記述します。

参考例

[前提]name,age,genderの3つのカラムをもつUserテーブル

Userテーブルから、age => ’23’, gender => ‘men’に当てはまるレコードを取り出します。

[1] pry(main)> User.where(age: '23', gender: 'men')

すると以下のように、条件に当てはまった三つのレコードが取れました。

User Load (0.7ms)  SELECT `users`.* FROM `users` WHERE `users`.`age` = 23 AND `users`.`gender` = 'men'
=> [#<User:0x0000000142607c58 id: 1, name: "田中", age: 23, gender: "men", created_at: Fri, 19 Nov 2021 10:15:21.806163000 UTC +00:00, updated_at: Fri, 19 Nov 2021 10:15:21.806163000 UTC +00:00>,
 #<User:0x0000000142473b58 id: 3, name: "佐藤", age: 23, gender: "men", created_at: Fri, 19 Nov 2021 10:15:21.812049000 UTC +00:00, updated_at: Fri, 19 Nov 2021 10:15:21.812049000 UTC +00:00>,
 #<User:0x0000000142473a40 id: 9, name: "宮田", age: 23, gender: "men", created_at: Fri, 19 Nov 2021 10:15:21.824770000 UTC +00:00, updated_at: Fri, 19 Nov 2021 10:15:21.824770000 UTC +00:00>]
タイトルとURLをコピーしました