从2个集合选择框向数组发送数据

时间:2011-05-31 19:09:44

标签: ruby-on-rails-3

我有控制器和行动步骤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个设备,并在比较动作中将它发送到某个数组或变量。 谢谢

1 个答案:

答案 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]

来获取控制器中的选定值