each_with_index_do はインデックスに対して 1 から始まります 質問する

each_with_index_do はインデックスに対して 1 から始まります 質問する

私は次のように 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 %>

おすすめ記事