Я довольно новичок и играюсь с поиском баз данных в Rails. У меня есть модель и база данных, в которой есть список имен в атрибуте name. Я хочу иметь возможность вводить ключевые слова для поиска в одно поле поиска, и этот ввод может состоять из одного слова, двух или более слов, в зависимости от того, насколько конкретным будет результат, который требуется пользователю.
Прямо сейчас я использую что-то уродливое, как показано ниже, которое выполнит максимум 3 условия поиска. Есть ли способ сделать это динамическим для ключевых слов 'search_length'? Метод find явно повторяется, но я не уверен, как его автоматизировать, и не нашел ни одного полезного предложения в Интернете.
def self.search(search)
if search
search_length = search.split.length
find(:all, :conditions => ['name LIKE ? AND name LIKE ? AND name LIKE ?',
"%#{search.split[0]}%", "%#{search.split[1]}%",
"%#{search.split[search_length1]}%"])
else
find(:all)
end
end
Кроме этого, любящие Rails до сих пор.
Большое спасибо,
Lev