Подтвердить что ты не робот

Вы можете использовать activerecord для поиска подстроки поля? (быстрый и грязный поиск ключевых слов)

Предположим, что база данных содержит поле "ключевые слова" и примеры записей включают: "трубный ключ" "обезьянский ключ" "серповидный ключ" "Полумесяц" "обезьяньи бары"

Есть ли способ в activerecord найти записи, в которых поле ключевого слова содержит подстроку "полумесяц"?

(Это просто быстрый и грязный поиск прототипа прототипа)

4b9b3361

Ответ 1

Да, просто используйте инструкцию LIKE в MySQL.

В Rails 2.x:

Table.find(:all, :conditions => ['keywords LIKE ?', '%crescent%'])

В Rails 3.x:

Table.where('keywords LIKE ?', '%crescent%').all

Ответ 2

Синтаксис базы данных Postgres:

YourModelName.where("yourFieldName like ?", "%" + yourSearchTerm + "%")

Ответ 3

Все зависит от вашей БД. Это Postgres? MySQL? MongoDB? Что-нибудь еще?

С помощью Postgres вы можете использовать что-то вроде:

Rails 2.x => Model.find(:all, :conditions=>["models.keywords ~= ?", 'crescent'])
Rails 3.x => Model.where("models.keywords ~= ?", 'crescent')

Вам просто нужно найти правильный синтаксис для вашей версии DB/Rails/ActiveRecord.