0
我有一个场地模型,每个场地都属于一个区域和一个类型。我在索引页上有两个由复选框组成的表格,允许我过滤由他们属于哪个类型或区域显示的场地记录。然而,只有def索引中的最后一行正在被使用,我怎样才能将它们组合起来,使两个表单都处于活动状态?我如何进行多次搜索?
控制器:
class VenuesController < ApplicationController
def index
@venues = Venue.all(:conditions => {:area_id => params[:areas]})
@venues = Venue.all(:conditions => {:venuetype_id => params[:venuetypes]})
end
end
查看:
<div class="filter_options_container">
<form class="filter_by_area_form", method="get">
<% Area.all.each do |a| %>
<%= check_box_tag("areas[]", a.id) %>
<%= a.name %>
<% end %>
<input type="submit" value="Filter" />
</form>
<br><br>
<form class="filter_by_venuetype_form", method="get">
<% Venuetype.all.each do |v| %>
<%= check_box_tag("venuetypes[]", v.id) %>
<%= v.name %>
<% end %>
<input type="submit" value="Filter" />
</form>
</div>
<div class="venue_partials_container">
<%= render :partial => 'venue', :collection => @venues %>
<div class="clearall"></div>
<%= link_to 'add a new venue', new_venue_path, :class => "add_new_venue_button" %>
</div>
所以只有venuetype形式的作品,或者如果我改变了高清指数为:
def index
@venues = Venue.all(:conditions => {:venuetype_id => params[:venuetypes]})
@venues = Venue.all(:conditions => {:area_id => params[:areas]})
end
那么只有区形式工程。
EDIT
伊夫改变了控制器读取:
def index
@venues = Venue.all(:conditions => {:venuetype_id => params[:venuetypes]}&&{:area_id => params[:areas]})
end
和视图:
<div class="filter_options_container">
<form class="filter_form", method="get">
<fieldset class="filter_form_fieldset">
<% Area.all.each do |a| %>
<%= check_box_tag("areas[]", a.id) %>
<%= a.name %>
<% end %>
</fieldset><br>
<fieldset class="filter_form_fieldset">
<% Venuetype.all.each do |v| %>
<%= check_box_tag("venuetypes[]", v.id) %>
<%= v.name %>
<% end %>
<input type="submit" value="Filter" />
</fieldset>
</form>
</div>
选择的区域,并且从形式的类型并点击后提交按钮的URL显示“/场地?区域[] = 2 & venuetypes [] = 13”但仍然只过滤区域的结果而不是键入。
感谢您的任何帮助。
有关使用或查询什么? 2个增益:1个查询,1个变量 – apneadiving 2011-02-04 23:43:47
您还应该只制作一个而不是两个,以便将`venuetypes`和`areas`参数发送到服务器。 – 2011-02-04 23:48:05