表单中的“多次选择”,如何给每个唯一名称?

时间:2019-03-16 16:33:28

标签: ruby-on-rails

我有一个包含多行的表单,每行都有一个选择框。如何给每个名称赋予唯一的名称,以便最终为每行的select赋予一个参数值。

当前参数仅给出最后一行的选定值。

这是我所拥有的:

<% @my_fields.each do |field| %>
  <tr><td><%= form.collection_select(:ServiceTypeID, @service_levels, :ServiceTypeID, :ServiceName) %></td></tr>
<% end %>

我的测试数据中有十行。

目前,我只得到一个用于最后选择的参数,我想我需要唯一地命名每个选择,最好是使用field.FieldID这是唯一的。我无法确定在何处/如何命名collection_select。

感谢您的指导。

1 个答案:

答案 0 :(得分:2)

检查collection_select方法(source):

  

collection_select(对象,方法,集合,value_method,   text_method,选项= {},html_options = {})

您可以覆盖name哈希中的select html_options属性:

<% @my_fields.each_with_index do |field, index| %>
  <tr>
    <td>
      <%= form.collection_select(:ServiceTypeID, @service_levels, :ServiceTypeID, :ServiceName, {}, { name: "my_name_#{index}" }) %>
    </td>
  </tr>
<% end %>