Ответ 1
Да, просто используйте инструкцию LIKE в MySQL.
В Rails 2.x:
Table.find(:all, :conditions => ['keywords LIKE ?', '%crescent%'])
В Rails 3.x:
Table.where('keywords LIKE ?', '%crescent%').all
Предположим, что база данных содержит поле "ключевые слова" и примеры записей включают: "трубный ключ" "обезьянский ключ" "серповидный ключ" "Полумесяц" "обезьяньи бары"
Есть ли способ в activerecord найти записи, в которых поле ключевого слова содержит подстроку "полумесяц"?
(Это просто быстрый и грязный поиск прототипа прототипа)
Да, просто используйте инструкцию LIKE в MySQL.
В Rails 2.x:
Table.find(:all, :conditions => ['keywords LIKE ?', '%crescent%'])
В Rails 3.x:
Table.where('keywords LIKE ?', '%crescent%').all
Синтаксис базы данных Postgres:
YourModelName.where("yourFieldName like ?", "%" + yourSearchTerm + "%")
Все зависит от вашей БД. Это 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.