Рельсы находят по части строки - PullRequest
5 голосов
/ 05 декабря 2011

Я хочу сделать поиск в Rails, чтобы проверить, существует ли объект в базе данных.У меня есть CSV, который я мало контролирую по формату.У меня есть поле в CSV под названием «имя», который в моем примере содержит 5 слов.Это поле содержит имя и адрес, но оно не ограничено каким-либо форматом.

В моей базе данных есть такие поля, как «имя», «адрес 1», «адрес 2».По сути, я хочу посмотреть, соответствует ли какая-либо часть поля имени в CSV какому-либо из полей в моей базе данных.

Я знаю, что, вероятно, мне нужно выполнить команду типа SQL, но я не уверен, как это сделать.об этом.

1 Ответ

24 голосов
/ 05 декабря 2011

Вы можете сделать это, используя LIKE:

User.where('name LIKE ?', "%#{@user.name}%")

Синтаксис оператора LIKE sql для поиска поля для данного фрагмента строки заключается в том, чтобы окружить ваш фрагмент строки % символамиТаким образом, полученный SQL будет выглядеть примерно так:

"SELECT \"users\".* FROM \"users\" WHERE (name LIKE '%Rob Phillips%')"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...