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

时间:2015-01-22 05:20:18

标签: ruby-on-rails input hash textfield params

我正在使用MongoMapper和Rails 4。

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

我想在“编辑广告系列”页面上迭代它并动态填充输入框:

enter image description here

我正在努力找到一种方法,将两个单独的<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标签应该与哪些名称相同?

编辑:难以理解的是,在提交表单之前,其中一个代码的名称必须是其值。

1 个答案:

答案 0 :(得分:2)

尝试这样的事情

<%= 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 %>