найти все записи, где выполняются два условия - PullRequest
11 голосов
/ 10 февраля 2011

Я пытаюсь найти все записи, где выполняются два условия. Например:

ruby-1.8.7-p302 > Person.all
 => #<Person name: "Jane", city: "Green Bay", state: "Wisconsin", single: true>
 => #<Person name: "Dick", city: "Madison", state: "Wisconsin", single: false> 
 => #<Person name: "Tom", city: "Milwaukee", state: "Wisconsin", single: true>

Я хочу получить записи "Джейн" и "Том". Я пытаюсь это, но это не работает:

Person.find_all_by_state("Wisconsin").find_all_by_single(true)

Ответы [ 3 ]

40 голосов
/ 10 февраля 2011

Person.where(:state => "Wisconsin", :single => true)

9 голосов
/ 10 февраля 2011

Я бы пошел с ответом dmarkow, но в качестве небольшого количества дополнительных мелочей вы также можете сделать это:

Person.find_all_by_state_and_single("Wisconsin", true)

Цепочка столько полей, используя _and_, как требуется.Однако синтаксис where гораздо точнее, чем этот.

2 голосов
/ 06 сентября 2016

Пример использования условия ИЛИ:

model_name.where("field_1 = ? OR field_2 = ?", params[:search_string],  params[:search_string])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...