Вроде и где состояние в рубине - PullRequest
11 голосов
/ 14 марта 2011

Какой синтаксис используется в Ruby on Rails? Это то, что я пытаюсь сделать:

Я пытаюсь найти всю фамилию из таблицы, которая начинается с egm, поэтому что-то like %egm%. Я знаю, как это сделать с помощью find_by_sql, но просто любопытно узнать способ Ruby.

s = Person.find_by_last_name('nan%')

Ответы [ 3 ]

15 голосов
/ 14 марта 2011
Person.where('name LIKE ?', '%egm%').all
13 голосов
/ 14 марта 2011
l_name_var = "nan"
Person.where("people.last_name LIKE :l_name", {:l_name => "#{l_name_var}%"})

или в вашем случае

l_name_var = "egm"
Person.where("people.last_name LIKE :l_name", {:l_name => "%#{l_name_var}%"})
3 голосов
/ 15 марта 2011

Чтобы немного расширить, методы find_by_X используют оператор =, поэтому вы не захотите использовать их для аналогичных условий. Способ "Rails" предполагает использование небольшого количества SQL внутри метода where, как показано в других ответах. То же самое применимо, если вы пытаетесь отсортировать результаты, используя метод заказа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...