【发布时间】:2020-05-28 03:10:02
【问题描述】:
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 放入控制器时,控制台中的一切看起来都很好,但随后它似乎消失了。我在这里做错了什么?
【问题讨论】:
标签: ruby-on-rails view controller ruby-on-rails-5