Ruby on rails 3 从2个集合选择框向阵列发送数据

Ruby on rails 3 从2个集合选择框向阵列发送数据,ruby-on-rails-3,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"

我有一个带有动作步骤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 %>
{:action=>'comparison'}do | f |%>
“选择”},:类=>'device')%>

“选择”},:类=>'device')%>
我希望它允许用户选择两个设备,并在比较操作中将其发送到某个数组或变量。

您可以这样做:

<% 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 %>
{:action=>'comparison'}do | f |%>
“选择”},:类=>'device')%>

“选择”},:类=>'device')%>
在控制器中,params[:device]中有一个数组,其中包含选定的值

或者,您可以将我的示例中的“device[]”替换为每个选择框的唯一名称(例如“Device1”和“device2”)


然后,您可以通过访问params[:device1]和params[:device2]来获取控制器中的选定值。

通过您的示例,我正在获取请求参数:{“utf8”=>“ā”,“authenticity_token”=>“dqvhmzhri0tdvzofjqi8jdzq+p6FturXCApD/bYvYA=”,“/compare/comparison”=>{“device1”=>[nil],“commit”=>“palyginti”}