まずはこういうHashがあるとします。
test = { english: 100, japanese: 90 }
普通にeach_with_indexを使うとこんな感じになるかと思います。
test.each_with_index do |obj, index| p obj p obj.class p index end [:english, 100] Array 0 [:japanese, 90] Array 1この形だとせっかくHashなのにkeyとvalueを分けて取れないので以下のようにやるとよいようです。
test.each_with_index do |(key, val), index| p key p val p index end :english 100 0 :japanese 90 1これは知らなかったのですごく便利。
参考URL
http://bismar.hatenablog.com/entry/2012/12/01/215111