数组:索引-7数组

时间:2012-07-26 10:40:16

标签: ruby-on-rails

我收到错误:

index -7 out of array

我的阵列出了什么问题?我不能存储太多数字,或者是什么?

已更新

PS - (来自json,我只得到ids)

answers_from_json = ActiveSupport::JSON.decode(params[:answers_from_json])

answers_from_json.each_with_index do |item, i|

   posts     = Post.find(:all, :conditions => ["id=?",item.to_i])


       sheet[header_y_offset-1,0]           = 'Name'   

   posts.each_with_index do |post,i|
    sheet[1+i,0]  = post.name
   end 
 end     

1 个答案:

答案 0 :(得分:1)

您正在从数组中读取一个值,而不是那里 - 期望数组中的元素数量多于实际数量。再看一下你的sheet数组,它可能没有i+1个项目。

编辑:请记住,对于基于0的索引,长度为7的数组的最后一个索引是6;)

只需打印出它的长度以及您尝试访问的索引。然后您可能会看到问题:

   posts.each_with_index do |post,i|
     p "length of the post: " + post.size
     p "trying to access element nr. : " + (i + 1)
     sheet[1+i,0]  = post.name
   end 

如果这里没有引发错误,那么它可能是sheet[header_y_offset-1,0]语句或类似语句,其中错误实际发生 - 你得到我希望的图片。最好的方法是调试 - 但由于我不知道ruby超越基础 - 我只能建议如何打印 - 调试 - 它应该就够了。