[英]Rails search form with multiple params
我正在研究應接受多個參數的搜索表單。 但是它目前僅接受一個。
我的控制器動作:
def index
@halls = Hall.order(:name).page(params[:page]).per(9)
@city = City.all
@venue_type = VenueType.all
@event_type = EventType.all
if !params[:city].blank?
session[:city] = params[:city]
city = City.find_by(name: params[:city])
@halls = @halls.where(:city => city)
end
if !params[:venue_types].blank?
session[:venue_types] = params[:venue_types]
venue_types = VenueType.find_by(name: params[:venue_types])
@halls = @halls.where(:venue_types => venue_types)
end
if !params[:event_types].blank?
session[:event_types] = params[:event_types]
event_types = VenueType.find_by(name: params[:event_types])
@halls = @halls.where(:event_types => event_types)
end
結束
我的觀點:
<div class="search">
<%= form_tag(halls_path, :method => "get", class: "navbar-form", id: "search-form") do %>
<%= select_tag "city", options_from_collection_for_select(City.all, "name", "name") %>
<ul>
<% @venue_type.each do |venue| %>
<li>
<%= check_box_tag 'venue_type[]', venue.name -%>
<%= venue.name -%>
</li>
<% end %>
</ul>
<ul>
<% @event_type.each do |event| %>
<li>
<%= check_box_tag 'event_type[]', event.name -%>
<%= event.name -%>
</li>
<% end %>
</ul>
<button class="btn" type="submit">Search</button>
<% end %>
</div>
我敢打賭,錯誤在於控制器,但作為新手,我找不到它。 將不勝感激的答案。
您的視圖使用以下命令定義了check_box_tag:
<%= check_box_tag 'venue_type[]', venue.name -%>
<%= venue.name -%>
<%= check_box_tag 'event_type[]', event.name -%>
<%= event.name -%>
正如你看到的,你的控制器必須得到:value_type
& :event_type
從PARAMS代替:value_types
& :event_types
。 因此,您可以從視圖或控制器進行更改,它應該可以工作,但是我建議從視圖進行更改,如下所示:
<%= check_box_tag 'venue_types[]', venue.name -%>
<%= venue.name -%>
<%= check_box_tag 'event_types[]', event.name -%>
<%= event.name -%>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.