我有一个观点`事件/ new.html.erb其中包含:JavaScript的制阵列不被发送到控制器作为数组?
<%= hidden_field_tag 'id_array[]', [], id: 'parti_ids' %>
<%= f.submit "Create Meeting", class: "btn-submit" %>
,使得在提交id_array []发送到我的events_controller#create
行动作为数组。 我遇到的问题是,如果,例如,我想id_array = [3,4,5]
,它是通过拾起在控制器["3,4,5"]
而不是["3","4","5"]
。
这里是哪里,这是建立在我的application.js
代码:
var idList = [];
$(document).on('click', "#check-button", function(){
....
$("#check-list li input").each(function(){ //for each listed colleague...
if($(this).is(":checked")){ //if check-box is ticked
idList.push($(this).val()); //add id to idList
}
});
$('#parti_ids').val(idList); //sets idList array to be value of parti_ids hidden_tag_field in view
});
我有一种感觉它的东西做的线$('#parti_ids').val(idList);
,因为这是parti_ids实际上是设置的唯一的地方。但我不知道这有什么错设置数组值这个样子,或者为什么它使事情如[“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
为什么不使用复选框表单助手,将multiple选项设置为true而不是创建数组客户端? – Rubysmith
@Rubysmith我不知道我明白你的意思? –
[发送数组参数](http://apidock.com/rails/ActionView/Helpers/FormHelper/check_box#1001-Sending-array-parameters) – Rubysmith