私は次のように Rails アプリのビューで Ruby イテレータを使用しています:
<% ([email protected]).each_with_index do |element, index| %>
...
<% end %>
私は、単に次のように言うのではなく、1.. を追加することを考えました。@document.data
上記のインデックスを 1 から開始するというトリックが使えるでしょう。しかし残念なことに、上記のコード インデックスは依然として 0 から data.length (実質的には -1) です。では、何を間違っているのでしょうか。インデックスを 1 - data.length に等しくする必要があるのですが... これを実行するためにイテレータを設定する方法がわかりません。
ベストアンサー1
1.8 のような古い Ruby を使用していない限り (これは 1.9 で追加されたと思いますが、よくわかりません)、each.with_index(1)
1 から始まる列挙子を取得するには次のようにします。
あなたの場合は次のようになります:
<% @document.data.length.each.with_index(1) do |element, index| %>
...
<% end %>