我收到错误:
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
答案 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超越基础 - 我只能建议如何打印 - 调试 - 它应该就够了。