Я пытаюсь выполнить поиск в Rails 3 следующим образом. У меня есть объект базы данных, например, с таким атрибутом:
@food.fruit = "Apples, Pears, Plums"
и у меня есть поиск, который использует параметры из флажка, например:
params[:search] = ["Apples", "Oranges", "Bananas", "Grapefruit"]
Поскольку у моего объекта @food
выше есть «Яблоки», а в массиве поиска - «Яблоки», я бы хотел, чтобы этот поиск был успешным. Однако у меня возникают проблемы с правильной работой.
Моей первоначальной мыслью было сделать что-то вроде
@results = Food.where("fruit LIKE ?", "%params[:search]%")
или
@results = Food.where("fruit IN ?", params[:search])
Но первый работает, только если params[:search]
содержит ТОЛЬКО элементы @food.fruit
и никаких других. Второй вообще не работает.
Мой последний вариант - это сделать что-то вроде
@results = Array.new
params[:search].each do |search|
@results << Food.where("fruit LIKE ?", search)
end
но я бы предпочел этого не делать, если мне не нужно. У кого-нибудь есть совет?