我有控制器和行动步骤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 %>
我想要你可以选择2个设备,并在比较动作中将它发送到某个数组或变量。 谢谢
答案 0 :(得分:0)
你可以这样做:
<% 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'和'device2'。
然后你可以通过访问params [:device1]和params [:device2]
来获取控制器中的选定值