[英]javascript-made array not being sent to controller as an array?
我有一个`events / new.html.erb视图,其中包含:
<%= hidden_field_tag 'id_array[]', [], id: 'parti_ids' %>
<%= f.submit "Create Meeting", class: "btn-submit" %>
这样,在提交时,id_array []作为数组发送到我的events_controller events_controller#create
操作。 我遇到的问题是,例如,如果我想要id_array = [3,4,5]
,它将在控制器处以["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
删除此行。
<%= 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.