Formtastic复选框提交带有空白条目的列表(除了选择的ID)

时间:2012-07-25 22:53:02

标签: ruby-on-rails ruby-on-rails-3 select formtastic

我正在设置一个formtastic表单,其中许多字段需要选择“select all apply”。 (仅供参考,我使用纤薄但如果需要,我可以将其转换回普通导轨)。

例如。我定义了这个输入:

    = f.input :categories_list, :label => _("Commonly Found In"), :as => :check_boxes, :multiple => true, :collection => Category.all

这会创建一堆复选框,只显示存在的复选框。但是,当我选择一个(或两个或三个)时,它会中断我正在创建的模型的创建,并且我注意到categories_list字段提交为:

  "categories_list"=>["", "1", "2"],

而不是:

  "categories_list"=>["1", "2"],

有谁知道这是为什么?这是一个与formtastic的错误?如果我发布任何更相关的代码,请告诉我。我真的很想知道如何使这项工作。

1 个答案:

答案 0 :(得分:4)

这是为了允许清除所有选择。如果没有数组开头的空白/空值,浏览器根本不会设置categories_list参数,现有的复选框将保持选中状态。

如果未设置categories_list,则您不知道用户的意图。

你只需要在控制器或模型中的params中过滤掉这个空白选项,如果它不适合你(但我建议你在解除它之前尝试复制编辑问题)。