我有一个简单的表单,它允许用户根据表单字段location_id
中给出的 过滤搜索结果。collection_select
如果选择了特定位置,我想呈现缩小的结果,如果用户选择默认的“请选择”字段,则呈现所有结果。
此代码适用于单独的位置,但如果用户选择“请选择”字段则不起作用。params[:location_id].blank?
在控制器不工作。
看法
<%= form_tag @city %>
<%= collection_select 'location_id', nil, @city.locations, :id, :address, prompt: true %>
<%= submit_tag "sort", :name => nil, class: "btn btn-success travel-button", id: "hotels-radius-search-button" %>
<% end %>
控制器
if params[:location_id].blank?
...render all results...
else
..render specific results...
end
更新
服务器的响应
选择默认“请选择”选项时的参数 - 不起作用
Parameters: {"utf8"=>"✓", "search_radius"=>"6", "location_id"=>[""], "_"=>"1365350127863", "id"=>"75"}
用户在菜单中选择任何选项时的参数 -- 成功
Parameters: {"utf8"=>"✓", "search_radius"=>"6", "location_id"=>["811"], "_"=>"1365350127865", "id"=>"75"}
或者
Parameters: {"utf8"=>"✓", "search_radius"=>"6", "location_id"=>["808"], "_"=>"1365350127865", "id"=>"75"}
ETC