Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 轨道3。无法在数组中循环_Arrays_Ruby On Rails 3 - Fatal编程技术网

Arrays 轨道3。无法在数组中循环

Arrays 轨道3。无法在数组中循环,arrays,ruby-on-rails-3,Arrays,Ruby On Rails 3,我正在Rails 3中开发一个小应用程序。 在一个页面上,我为数组中的每个用户(在每个循环中)收集ID。然后我将该数组的内容放在一个隐藏的文本字段中,并将其发送到一个名为“add_all”的方法中。在这个方法中,我得到了一个循环,它应该选择每个用户id并将其逐个添加到数据库中,但它只添加第一个 在视图中(有点简化): 参数[:profile\u id],:friend\u id=>id) @profile.contacts您正在ProfileID数组中调用“join”。这使它成为一个字符串,因

我正在Rails 3中开发一个小应用程序。 在一个页面上,我为数组中的每个用户(在每个循环中)收集ID。然后我将该数组的内容放在一个隐藏的文本字段中,并将其发送到一个名为“add_all”的方法中。在这个方法中,我得到了一个循环,它应该选择每个用户id并将其逐个添加到数据库中,但它只添加第一个

在视图中(有点简化):


参数[:profile\u id],:friend\u id=>id)
@profile.contacts您正在ProfileID数组中调用“join”。这使它成为一个字符串,因此不能使用“each”遍历它

您应该在控制器中执行以下操作:

id_array = params[:profileids].split(",")
id_array.each do |id|
   @profile = Profile.find(params[:profile_id])
   @contact = Contact.create(:profile_id => params[:profile_id], :friend_id => id)
   @profile.contacts << @contact
end
id\u array=params[:profileid].split(“,”)
id|u数组。每个do|id|
@profile=profile.find(参数[:profile\u id])
@contact=contact.create(:profile\u id=>params[:profile\u id],:friend\u id=>id)
@profile.contacts试试这个

params[:profileids].split(",").each do |id|

基本上,您是在尝试通过字符串而不是数组进行迭代。

就像一个符咒!非常感谢。
id_array = params[:profileids].split(",")
id_array.each do |id|
   @profile = Profile.find(params[:profile_id])
   @contact = Contact.create(:profile_id => params[:profile_id], :friend_id => id)
   @profile.contacts << @contact
end
params[:profileids].split(",").each do |id|