2016-09-15 7 views
2

Personという名前のモデルには、name,age,という3つの列が含まれています。Railsでデータベースレコードを取得する

gender = "male"の場合、すべての行を取得する方法。私は 次のようにデータを取得しようとします。

p = Person.find_by_gender("male") 

上記の記述が正しく機能しました。しかし、それは1レコードしか返しません。ため、ステートメントは次のようなクエリに変換されるためです。

SELECT "persons".* FROM "persons" WHERE "persons"."gender" = $1 LIMIT 1 [["gender", "male"]] 

制限が1に設定されているため、1レコードしか返しません。だから、制限を解除する方法は?テーブルのすべてのレコードを取得するための私の条件はgender"male"と一致します。

答えて

2

使用where

Person.where(gender: "male") 

findメソッドは常にレールでは1つのレコードのみ

1

を返すメソッドは常に、なぜそれが単一のレコードを返すのシングルレコードを返し見つけます。あなたは(ActiveRecordのです::関係)一致するレコードの配列を与える

Person.find_by_gender("male") 

使用

Person.where(:gender => "male") 
関連する問題