我有一个包含多行的表单,每行都有一个选择框。如何给每个名称赋予唯一的名称,以便最终为每行的select赋予一个参数值。
当前参数仅给出最后一行的选定值。
这是我所拥有的:
<% @my_fields.each do |field| %>
<tr><td><%= form.collection_select(:ServiceTypeID, @service_levels, :ServiceTypeID, :ServiceName) %></td></tr>
<% end %>
我的测试数据中有十行。
目前,我只得到一个用于最后选择的参数,我想我需要唯一地命名每个选择,最好是使用field.FieldID这是唯一的。我无法确定在何处/如何命名collection_select。
感谢您的指导。
答案 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 %>