Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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 在Rails 5的表单中放入哈希_Ruby On Rails_Forms_Hash - Fatal编程技术网

Ruby on rails 在Rails 5的表单中放入哈希

Ruby on rails 在Rails 5的表单中放入哈希,ruby-on-rails,forms,hash,Ruby On Rails,Forms,Hash,在过去的几个小时里,我一直在尝试,但没有成功。 我有一个变量保存哈希值,还有一个变量保存字符串数组。 因此: 如果我这样做 @marks.each do |data| puts data.name end 输出将是字符串“data1”、“data2”等等 我想制作一个表单,为@object.values[“data1”]、@object.values[“data2”]等赋值,但制作表单时: <%= form_for(@object) do |f| %> <% @mar

在过去的几个小时里,我一直在尝试,但没有成功。 我有一个变量保存哈希值,还有一个变量保存字符串数组。 因此:

如果我这样做

@marks.each do |data|
  puts data.name
end
输出将是字符串“data1”、“data2”等等

我想制作一个表单,为@object.values[“data1”]、@object.values[“data2”]等赋值,但制作表单时:

<%= form_for(@object) do |f| %>
  <% @marks.each do |data| %>

      <%= f.label data.name %>
      <%= f.text_field "values[" + data.name + "]", @object.values[data.name]%>

  <% end %>

  <%= f.submit "Create" %>
<% end %>

我得到这个错误:

参数数目错误(给定3,应为1..2)

如果删除“@object.values[data.name]”,则会出现以下错误:

“对象:0x007fa04e2b8108>的未定义方法”


在这里,我尝试了一些变体和其他方法来解决一些类似的问题,但都没有成功……我真的想不出正确的方法来解决这个问题。

我想我理解您正在尝试做什么。您可能想使用
字段来处理

<%= form_for(@object) do |f| %>
   <%= fields_for :values do |vf| %>
      <% @marks.each do |data| %>
         <%= vf.label data.name %>
         <%= vf.text_field data.name, value: @object.values[data.name]%>
     <% end %>
   <% end %>
  <%= f.submit "Create" %>
<% end %>

看看嵌套表单:我一定会的。非常感谢!
<%= form_for(@object) do |f| %>
   <%= fields_for :values do |vf| %>
      <% @marks.each do |data| %>
         <%= vf.label data.name %>
         <%= vf.text_field data.name, value: @object.values[data.name]%>
     <% end %>
   <% end %>
  <%= f.submit "Create" %>
<% end %>