【发布时间】:2016-05-31 06:48:58
【问题描述】:
基本上我想在我的表单中创建一个接受复选框的选项(0 到所有接受的值)。
我喜欢枚举的结构,因为我获得了将整数存储在数据库中的性能速度,但我可以在我的代码中引用该符号。但是,当我存储多个值(如复选框)时,我怀疑是否可以使用枚举。
所以我认为它工作得最好的方式是将它存储为一个字符串,它也是一个数组。所以是这样的:
# refactor_rule :string default([]), is an Array
那么我的表单是这样的:
<%= f.input :refactor_rule, collection: ["dry", "concise", "performant"], as: :check_boxes, class: "form-control" %>
这种方法的问题是当我只存储 1 或 2 个选项(即不是全部)时,属性如下所示:
q.refactor_rule
=> ["", "dry", "concise"]
我讨厌,因为 [0] 的值为空。
所以我的问题如下:
- 实现这一目标的最高效方法是什么?请注意,我的复选框中的选项是静态的,但该字段需要接受多个而不是 1?
- 如何只存储选中的值而不存储空值?
- 即使我存储多个值,是否有任何方法可以利用 Rails 内置的枚举功能?
【问题讨论】:
标签: ruby-on-rails checkbox enums simple-form ruby-on-rails-5