Поиск имени элемента из нескольких полей в Ruby on Rails

#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)