#ruby-on-rails #search #elasticsearch
#ruby-on-rails #Поиск #elasticsearch
Вопрос:
На моей индексной странице я streams
отобразил, и их можно искать с помощью elasticsearch.
def index
@streams = Stream.search(params)
end
Когда страница загружается, отображаются все результаты, и пользователь может выполнить поиск, и результаты поиска будут отображены.
Как я могу сделать так, чтобы при загрузке страницы по умолчанию результаты не отображались? Результаты возвращаются только тогда, когда пользователь выполняет поиск.
Ответ №1:
Прежде всего, я бы установил, что params
связано с вашим пользовательским поиском. Вы могли бы сохранить его в чем-то вроде params[:search]
. Тогда все, что вам нужно сделать, это проверить содержимое params[:search]
:
def index
@streams = params[:search] ? Stream.search(params[:search]) : Stream.none
end
Stream.none
это метод rails 4, который возвращает пустое отношение
Комментарии:
1. кажется, это всегда не возвращает результатов
2. «Как я могу сделать так, чтобы при загрузке страницы по умолчанию результаты не отображались» Не возвращает никаких результатов, что вы хотите? Если вы имеете в виду, что даже при
params[:search]
настройке вы не получаете результатов, мне понадобится дополнительный код, чтобы помочь вам, например, содержимоеStream.search
метода