0

我有最简单的 Rails 应用程序,带有脚手架帐篷

这是我的控制器#index

  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:

当我提交时,未选择参数(选择或 checl_boxes)我不想发送此参数,但它们以空的形式发送

GET /tents?utf8=...&brand=&season=&commit=Submit

问题2:

当我检查多个复选框时,获取请求类似于

GET /tents?utf8=...&brand=Brand&季节=4&季节=3&commit=Submit

在此之后,我希望将为这两个值选择数据,但控制器预计这两个值都在该字段中,并返回零结果

有什么建议吗?

更新

可能我的问题在 railscasts-111 (高级搜索表单)中解决了

4

2 回答 2

0

问题 2:您需要为表单编写 javascript 包装器以在提交时序列化和发送数据

于 2013-10-06T19:07:04.123 回答
0

关于问题 2:您需要指定季节复选框,如下所示:

     =check_box_tag 'season[]', season

但我没有测试它

于 2013-10-06T19:03:15.323 回答