【发布时间】:2011-09-19 21:31:28
【问题描述】:
我有一张场地表。场地索引页面默认列出所有场地记录,并允许您使用同一页面上的表单按区域和/或类型过滤它们,并带有提交按钮和页面重新加载。
然后显示找到的所有场所,并且表单会自行重置。
如何在不重新加载页面的情况下仅通过单击不同的过滤器选项来更新场所列表?所以没有提交按钮,表单保持更改状态。
场地控制器
def index
if
@venues = Venue.with_type(params[:venuetypes]).with_area(params[:areas]).order("average_rating DESC").all
else
@venues = Venue.all
end
@venues = @venues.paginate :per_page => 15, :page => params[:page]
end
场地 index.html.erb 这已经在使用 jQuery-UI 来获得更好看的复选框
<div class="filter_options_container">
<%= form_tag '', :method => :get, :id => 'filter_form' do %>
<fieldset class="filter_form_fieldset venuetypes">
<% Venuetype.all.each do |v| %>
<p class="venuetype_check"><%= check_box_tag 'venuetypes[]', v.id, false, :id => "venuetype-#{v.id}" %>
<label for="venuetype-<%= v.id %>"><%= v.name %></label></p>
<% end %>
</fieldset>
<fieldset class="filter_form_fieldset areas">
<% Area.all.each do |a| %>
<p class="area_check"><%= check_box_tag 'areas[]', a.id, false, :id => "area-#{a.id}" %>
<label for="area-<%= a.id %>"><p1><%= a.name %></p1></label></p>
<% end %>
</fieldset>
<div class="filter_form_button">
<p2><input type="submit" value="Filter"/></p2>
</div>
<% end %>
</div>
<div class="venue_partials_container">
<%= render :partial => 'venue', :collection => @venues %>
<div class="clearall"></div>
<div class="paginate_container">
<div class="paginate">
<%= will_paginate @venues %>
</div>
</div>
</div>
非常感谢您提供的任何帮助!
【问题讨论】:
标签: ruby-on-rails ajax forms jquery filter