2016-09-15 2 views
2

Моя модель с именем Person содержит 3 столбца, а именно name, age, gender.Восстановить записи базы данных в 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

В рельсах найти методы всегда возвращают одну запись, поэтому он возвращался одну запись.

Person.find_by_gender("male") 

Использование Где, которые дают вам множество совпадающих записей (что ActiveRecord :: связь)

Person.where(:gender => "male")