javascript生成的数组未作为数组发送到控制器?

javascript生成的数组未作为数组发送到控制器?,javascript,ruby-on-rails,arrays,ruby,Javascript,Ruby On Rails,Arrays,Ruby,我有一个“events/new.html.erb”视图,其中包含: <%= hidden_field_tag 'id_array[]', [], id: 'parti_ids' %> <%= f.submit "Create Meeting", class: "btn-submit" %> 我觉得这与行$('parti_id').val(idList)有关,因为这是唯一一个实际设置parti_ID的地方。但我不知道这样设置数组值有什么问题,也不知道为什么它会将[“3

我有一个“events/new.html.erb”视图,其中包含:

<%= hidden_field_tag 'id_array[]', [], id: 'parti_ids'  %>

<%= f.submit "Create Meeting", class: "btn-submit" %>
我觉得这与行
$('parti_id').val(idList)有关,因为这是唯一一个实际设置parti_ID的地方。但我不知道这样设置数组值有什么问题,也不知道为什么它会将[“3,4”]改为[“3,4”]

为了向您展示我如何在控制器中使用它,下面是一个片段:

participants = params[:id_array]
participants.each do |id|
   puts(id) #THIS PUTS THE ENTIRE VALUE OF PARTICIPANTS INSTEAD OF EACH ID
end
拆下这条线

<%= hidden_field_tag 'id_array[]', [], id: 'parti_ids'  %>

为什么不使用复选框form helper,并将多个选项设置为true,而不是创建阵列客户端?@Rubysmith我不确定我是否理解您的意思?@Rubysmith由于阵列仍有机会在其他地方更改,我希望在计算完后将其提交。您能建议我如何重新编写设置#parti_id值的行吗?问题不在于JavaScript,而在于隐藏的#field_标记以及Rails如何处理参数。我猜您可能需要为每个复选框生成一个隐藏字段。这样做会导致id_数组作为字符串“3,4,5”而不是数组传递给控制器,因此它不允许我执行参与者。请注意,这对我之前访问控制器的内容没有任何影响。它仍然在接收[“3,4,5”]而不是[“3”,“4”,“5”]以上答案是目前最简单的解决方法。
<%= hidden_field_tag 'id_array[]', [], id: 'parti_ids'  %>
<input type="hidden" name="id_array" id="parti_ids" />
  participants = params[:id_array]
  participants.split(',').each do |id|
    puts(id) #THIS PUTS EACH ID
  end