是否可以通过附加到text_field的额外值来返回表单

时间:2014-05-27 13:29:15

标签: ruby-on-rails form-for

我有一个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 %>

然后我在保存之前修复它,但我想知道如果可以直接从表单中添加它们会怎么做。

0 个答案:

没有答案