Ruby
Rails
Jbuilder

jbuilderでwith_indexを使うときの注意

初歩的な内容だけど
普段のイメージでjbuilderファイル内でwith_indexを使っても、nilになる

@array.each.with_index(1) do |e, i|
  json.index i # nil
end

jbuilderで使用するときはto_aが必要だった

@array.each.with_index(1).to_a do |e, i|
  json.index i # 1,2,3...
end

同じインスタンス変数をcontrollerで使ったときはto_aは不要だったのになぜ・・・
理由がわかってないので、ご存じの方いたらコメントくれると嬉しいです