Используя область с LIKE и OR, передавая аргументы для поиска в двух разных столбцах - PullRequest
0 голосов
/ 06 января 2012

Каков наилучший способ выполнить LIKE и ИЛИ, передав аргумент?

У меня есть поле автозаполнения, где пользователи могут вводить почтовый индекс (число) или название пригорода (строка)и хорошо, как запустить поиск в двух разных столбцах.

В данный момент я делаю следующее, но оно не работает:

scope :search_by_postcode, lambda { |q| where("postcode LIKE ? OR postcode_name LIKE ?", "%#{q}%", "%#{q}%").limit(10) }

Как бы это обойти?

1 Ответ

1 голос
/ 06 января 2012

Стоит рассмотреть Squeel :

Ваша область будет выглядеть так:

scope :first_ten_by_postcode_or_suburb_name, lambda { |q| where{postcode.matches(q) | suburb_name.matches("%#{q}%")}.limit(10) }
...