Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将动态添加的输入字段保存到哈希?_Ruby On Rails_Input_Hash_Textfield_Params - Fatal编程技术网

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

Ruby on rails 如何将动态添加的输入字段保存到哈希?,ruby-on-rails,input,hash,textfield,params,Ruby On Rails,Input,Hash,Textfield,Params,我正在使用MongoMapper和Rails 4 对于活动模型,我希望有一个属性自定义支付,它是一种散列:{'Username123':0.80,'other_guy',0.25} 我想在“编辑活动”页面上反复浏览它,并动态填充输入框: 我正在努力寻找一种将两个独立的框(根据用户的请求由javascript添加)转换为这种格式的好方法 我需要一种方法将两个标记转换为散列的键/值对,但我似乎不知道如何使传入的参数的格式正确 换句话说,我想看到的是: { "utf8":"✓", "au

我正在使用MongoMapper和Rails 4

对于
活动
模型,我希望有一个属性
自定义支付
,它是一种
散列
{'Username123':0.80,'other_guy',0.25}

我想在“编辑活动”页面上反复浏览它,并动态填充输入框:

我正在努力寻找一种将两个独立的
框(根据用户的请求由javascript添加)转换为这种格式的好方法

我需要一种方法将两个
标记转换为散列的键/值对,但我似乎不知道如何使传入的
参数的格式正确

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

{
   "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 %>


您能描述一下您的模型和表单生成视图吗?@MohammadAbuShady目前,该活动模型只是有一个
散列
字段(自定义支出)和一个
字符串
字段(名称)。不过,忘记表单生成视图中的任何其他内容:我只想知道如何获取这两个
input
标记的内容,并将它们添加到活动的custom_payouts属性中,而不必在控制器中执行一些参数操作。我想你可以手动创建它,但我真的不想这么做,试着用
text\u字段标记替换每个
f.text\u字段
,你能告诉我工作版本吗,这样我就可以修复我的答案%td=text\u字段标记(“campaign[custom\u payous][/name]”,名称,类别:'form control')%td=text\u field\u标记(“活动[自定义支出][[百分比]”,百分比,类:'form control')这不会产生我想要的确切输出,但与我想要的足够接近,所以一切都很好