如何将动态添加的输入字段保存到哈希?

How to save dynamically-added input fields to a hash?

我正在使用 MongoMapper 和 Rails 4.

对于 Campaign 模型,我想要一个属性 custom_payouts,它是 Hash 的一种类型:{'Username123': 0.80, 'other_guy', 0.25}

我想在 "edit campaign" 页面上遍历它并动态填充输入框:

我正在努力寻找一种将两个单独的 <input> 框(根据用户请求由 javascript 添加)完全转换为该格式的好方法。

我需要一种方法将两个 <input> 标签转换为散列的键/值对,但我似乎无法弄清楚如何做到这一点,以便传入的 params 在正确的格式。

换句话说,这是我想看到的:

{
   "utf8":"✓",
   "authenticity_token":"whatever==",
   "campaign":{
      "name":"Test Campaign",
      "custom_payouts": {
        "Username123": 0.25,
        "other_guy": 0.80,
      },
      "controller":"campaigns",
      "action":"create"
   }
}

我的 input 标签应该等于什么名字才能得到这个结果?

编辑:困难似乎在于其中一个标签的名称需要在提交表单时成为它的值。

尝试这样的事情

<%= form_for @campaign do |f| %>
  <%= f.label :name, "name" %>
  <%= f.text_field :name %>

  <%= f.label :"custom_payouts[][:username]", "Username" %>
  <%= text_field_tag "campaign[custom_payouts][][:username]" %>

  <%= f.label :"custom_payouts[][:percentage]", "Percentage" %>
  <%= text_field_tag "campaign[custom_payouts][][:percentage]" %>
<% end %>