Rails 5. Пытаюсь сделать простую форму поиска, а потом показывать результаты в индексе контроллера. К сожалению, мои "search_params" теряются между контроллером и представлением.
Частичный поиск
#_search.html.erb
<%= form_with( url: flights_path, method: "GET") do %>
<%= select_tag(:from, options_for_select(@airport_codes) ) %>
<%= select_tag(:to, options_for_select(@airport_codes)) %>
<%= number_field_tag(:passenger_count, 2, in: 1..10) %>
<%= select_tag(:date, options_for_select(@search_dates), include_blank: "(Any)", required: false ) %>
<%= submit_tag("Search") %>
<% end %>
Консоль при отправке:
Parameters: {"utf8"=>"✓", "from"=>"YVR", "to"=>"YYC", "passenger_count"=>"2", "date"=>"", "commit"=>"Search"}
Контроллер:
#flights_controller.rb
class FlightsController < ApplicationController
def index
@search = search_params
@airport_codes = #list of airports
@search_dates = #list of future dates
@flight_results = Flight.search(search_params).includes(:to, :from)
end
def search_params
params.permit(:from, :to, :passenger_count, :date)
end
end
Но когда я перехожу к index. html .erb ...
#index.html.erb
<%= render "search" %>
<%= @search %>
Строка @search отображается как {} Когда я помещаю @search в контроллер, все выглядит в консоли нормально, но потом вроде пропадает. Что я здесь делаю не так?