如何将动态添加的输入字段保存到哈希?
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 %>
我正在使用 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 %>