-10

我得到错误:

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     
4

1 回答 1

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]错误实际发生的语句或类似语句-您得到了我希望的图片。最佳方法是调试 - 但由于我不知道超出基础的红宝石 - 我只能建议如何打印调试 - 这应该足够了。

于 2012-07-26T10:47:31.307 回答