Как искать много полей отдельно с помощью Searchkick? - PullRequest
0 голосов
/ 16 декабря 2018

Я начал использовать Searchkick gem (Elasticsearch) в моем приложении Rails 5.В настоящее время у меня есть поле поиска для названия компании.Я хотел бы добавить отдельный выпадающий список для поиска местоположения отдельно.

Вот пример того, как это будет выглядеть:

example form

Вот мое текущее решение, которое работает для поиска по названию,Но у меня проблемы с добавлением поиска по местоположению.

Контроллер:

...

 def index
  query = params[:q].presence || "*"
  @companies = Company.search(query, fields: [:title], match: :word_start, page: params[:page], per_page: 6)
 end

...

def company_params
  params.require(:company).permit(:title, :location)
end

Вот мой index.html.erb

<%= form_tag companies_path, method: :get do %>
  <%= text_field_tag :q, nil, class: "form-control", placeholder: "Search" %>
<% end %>

Я знаю, что должен изменить контроллер и представление.Это ниже не работает пример представления:

<%= form_tag companies_path, method: :get do %>
  <%= text_field_tag :q, nil, class: "form-control" %>
  <%= select_tag :location, options_from_location_field_for_select(Location.all ..?) %>
  <%= submit_tag "Search" %>
<% end %>

1 Ответ

0 голосов
/ 16 декабря 2018

Похоже, мне просто нужно предложение where.

query = params[:q].presence || "*"
location = params[:location].presence || "*"

Company.search(
  query, 
  fields: [:title], 
  match: :word_start, 
  where: { location: location }, 
  page: params[:page], 
  per_page: 6
)
...