我有一个json
字段,其中包含form
的值。我想要做的是添加一些选项以附加到后处理的值。我希望它们以数组或逗号分隔的字符串形式附加。
<%= f.fields_for model_name do |mod| %>
<% new_class.column_names.each do |col| %>
<%= mod.fields_for "#{col}[]", col do |field| %>
<%= field.label col %>
<%= field.check_box col, value: "default_1 %>
<%= field.check_box col, value: "default_2 %>
<%= field.text_field col %>
<% end %>
<% end %>
所以对于一个人为的例子:
Pet.column_names #=> ["name"]
我想要回来的是
{pets: {
name: "black, cat, Mr. Mistoffelees", # or ['black', 'cat', 'Mr. Mistoffelees'] also fine
name: "dog, Barkers",
name: "orange, Garfield",
name: "Fido" # ["Fido"] again also fine
}
我可以使用默认值处理缺少的选项,并且选项被使用一次并被丢弃,并且它们与特定的text_field
条目绑定得更紧密,而不是相应的列值,而不是示例的建议
如果需要,可以使用选项获取哈希值。
{pets: {
name: {value: "Mr. Mistoffelees", options: ['black', 'cat']}
}
因此,一些进展将fields_for
改为
<%= mod.label col %>
<%= mod.collection_check_boxes "#{col}_opts", %w(val_1 val_2 ...), :to_s, :to_s %>
<%= mod.text_field col %>
然后我在保存之前修复它,但我想知道如果可以直接从表单中添加它们会怎么做。