-10

エラーが発生します:

index -7 out of array

アレイの何が問題になっていますか? 桁数が多すぎて保存できません。

更新しました

PS - (json からは ID のみを取得します)

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 に答える