【发布时间】:2011-06-19 16:09:31
【问题描述】:
我正在尝试从零编程经验中学习 Rails,并尝试制作一个应用程序。在人们的大力帮助下,我有一个场地索引页面,可以通过下拉菜单按它们所属的区域进行过滤。我希望能够产生相同的效果,但使用复选框并且还能够选择多个区域添加到过滤器。这是我目前所拥有的:
型号:
class Venue < ActiveRecord::Base
belongs_to :user
has_many :reviews
belongs_to :area
scope :north, where(:area_id => "2")
scope :west, where(:area_id => "3")
scope :south, where(:area_id => "4")
end
控制器:
def index
if (params[:area] && Area.all.collect(&:name).include?(params[:area][:name]))
@venues = Venue.send(params[:area][:name].downcase)
else
@venues = Venue.all
end
end
场地 index.html.erb:
<div class="filter_options_container">
<form class="filter_form", method="get">
<%= select("area", "name", Area.all.collect(&:name), {:prompt => 'All Areas'}) %><br>
<input type="submit" value="Filter" />
</form>
<br><br>
<form class="filter_form", method="get">
<% Area.find(:all).each do |a| %>
<%= check_box_tag("area", "name") %>
<%= a.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>
filter_options_container 中的第一个表单(下拉菜单)工作正常,但复选框(第二个表单)返回“无法将符号转换为整数”我错过了什么/做错了什么?
感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails checkbox filtering