#ruby-on-rails #ruby #search
#ruby-on-rails #ruby #Поиск
Вопрос:
Я пытаюсь включить поиск элемента, а затем указать этот элемент в списке, если поиск завершен. Я могу заставить его работать для обоих экземпляров, но не одновременно. Мой код:
def search
@results=0
if !params[:searchinput].empty?
@results=1
@searchinput = params[:searchinput]
@searchcriteria="%#{params[:searchinput]}%"
@productlist = Product.where("productname like ? OR description like ?", @searchcriteria)
end
end
Я получаю следующую ошибку:
Неверно ли форматирование с помощью инструкции productlist?
Комментарии:
1. Если вы хотите использовать один и тот же термин для обоих
?
терминов, вам нужно передать@searchcriteria
дважды; в противном случае он думает, что вы забыли один.2. @philomory Я не знаю, как это прошло через мою голову. Спасибо!
Ответ №1:
Проблема в том, что вам нужно передать две переменные. Если это так @searchcriteria
, то передайте это.
def search
@results=0
if !params[:searchinput].empty?
@results=1
@searchinput = params[:searchinput]
@searchcriteria="%#{params[:searchinput]}%"
@productlist = Product.where("productname like ? OR description like ?", @searchcriteria, @second_variable)
end
end
Ответ №2:
инструкция productlist должна выглядеть следующим образом:
@productlist = Product.where("productname like ? OR description like ?", @searchcriteria, @searchcriteria)