如何在表单中创建一个循环并在提交表单时发送值?

时间:2015-10-28 15:08:20

标签: ruby-on-rails

  <%= form_for(@foo) do |f| %>
    <% @bar.each do |b| %>
      <%= b.jar %>
    <% end %>
  <% end %>

如何在提交表单时发送b.jar的值?

2 个答案:

答案 0 :(得分:2)

您只需将它们作为实际表单字段发送:

<%= form_for(@foo) do |f| %>
  <% @bar.each do |b| %>
    <%= hidden_field_tag b.name, b.jar %>
  <% end %>
<% end %>

您也可以为任何其他类型的字段执行此操作:

<%= text_field_tag b.name, b.jar %>

请注意,这假设每个@bar都有一个name属性。如果它没有,你需要确保使用一种方法给它一个唯一的名称,例如在循环中传递密钥并使用数字:

<%= form_for(@foo) do |f| %>
  <% @bar.each_with_index do |k, b| %>
    <%= hidden_field_tag "name#{k}", b.jar %>
  <% end %>
<% end %>

答案 1 :(得分:0)

我得到了答案。而不是&lt;%= hidden_​​field_tag b.name,b.jar%&gt;我不得不使用&lt;%= f.hidden_​​field b.name%&gt;。它对我有用。