3

我正在设置一个表格形式,其中许多字段需要“选择所有适用的”选项。(仅供参考,我使用 slim,但如有必要,我可以将其转换回普通导轨)。

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

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

这会创建一堆复选框,并且只有存在的复选框才会出现。但是当我选择一个(或两个或三个)时,它会破坏我正在创建的模型的创建,我注意到 category_list 字段提交为:

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

而不是:

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

有人知道为什么吗?这是formtastic的错误吗?如果我应该发布更多相关代码,请告诉我。我真的很想知道如何使这项工作。

4

1 回答 1

4

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

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

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

于 2012-07-28T06:28:52.717 回答