我有最简单的rails应用程序,带脚手架帐篷
这是我的控制器#index for
def index
@tents = Tent
@tents = @tents.where(:brand => params[:brand]) if params[:brand]
@tents = @tents.where(:season => params[:season]) if params[:season]
end
视图也是标准的,由脚手架生成
这里搜索女巫应该过滤数据
= form_tag tents_path, method: :get do
= label_tag "manufacturer"
= select_tag :brand, options_for_select(...), include_blank: true
= label_tag "seasons"
- Tent.pluck(:season).each do |season|
=check_box_tag 'season', season
=h season
= submit_tag 'Submit'
问题1:
当我提交,并且params未被选中(select或checl_boxes)时我不想发送这个参数但是它们是空的
GET /tents?utf8=...&brand=&season=&commit=Submit
问题2:
当我检查多个复选框时,获取请求就像是
GET /tents?utf8=...&brand=Brand
的&安培;季节= 4和;季节= 3和 commit=Submit
在此之后我预计将为两个值选择数据,但是控制器期望两个值都在字段中,并返回零结果
任何建议?
我的问题可能在railscasts-111(高级搜索表单)中解决了
答案 0 :(得分:0)
关于问题2: 您需要指定季节复选框,如下所示:
=check_box_tag 'season[]', season
但我没有测试它
答案 1 :(得分:0)
问题2: 您需要为表单编写javascript包装器以序列化并在提交
上发送数据