【问题标题】:Putting a Hash in a form in Rails 5在 Rails 5 中将哈希放入表单中
【发布时间】:2017-10-14 22:53:24
【问题描述】:

过去几个小时我一直在尝试这个,但没有成功。 我有一个保存哈希的变量和一个保存字符串数组的变量。 所以:

@object.values is a Hash
@marks = Mark.all

如果我这样做

@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]”,我会收到此错误:

"#Object:0x007fa04e2b8108 的未定义方法`'>"

我在此处的一些类似问题之后尝试了一些变体和其他一些方法,但都没有成功......我真的想不出正确的方法。

【问题讨论】:

标签: ruby-on-rails forms hash


【解决方案1】:

我想我明白你想要做什么。你可能想使用fields_for

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

【讨论】:

    猜你喜欢
    • 2022-11-12
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    相关资源
    最近更新 更多