我有一个带有操作步骤2的控制器,它按所选类别收集所有设备。我的step2.html.erb看起来像:
<% form_for compare_comparision_path, :url => {:action => 'comparision'} do |f| %>
<%= f.collection_select(:device, @devices, :id, :name, options ={:prompt => "Select"}, :class=>'device') %>
</br>
<%= f.collection_select(:device, @devices, :id, :name, options ={:prompt => "Select"}, :class=>'device') %>
<%= f.submit 'ok' %>
<% end %>
我希望它允许用户选择两个设备,并在比较操作中将其发送到某个数组或变量。
您可以这样做:
<% form_for compare_comparision_path, :url => {:action => 'comparision'} do |f| %>
<%= f.collection_select('device[]', @devices, :id, :name, options ={:prompt => "Select"}, :class=>'device') %>
</br>
<%= f.collection_select('device[]', @devices, :id, :name, options ={:prompt => "Select"}, :class=>'device') %>
<%= f.submit 'ok' %>
<% end %>
在控制器中,您将在params[:device]中有一个数组,其中包含到选定的值。
或者,您可以将我的示例中的"device[]"替换为每个选择框的唯一名称(例如"devise1"one_answers"device2"。
然后,您可以通过访问params[:device1]和params[;device2]来获取控制器中的选定值