-3

配列の値にアクセスするループを使用しています。結果を正しく表示するために使用with_indexしていますが、配列は 0 から始まりますが、DB 値は 1 から始まります。したがって、配列が反復され、インデックス #6 (配列内の位置 7) に達すると、停止し、したがって、7 番目のフィールドに格納されている値は表示されません。私は間違っているかもしれませんが、それが起こっていると思います。

each_with_index開始値が 0 以外である必要がある場合に備えて、メソッドに引数を渡すことが可能であると読みましたが、その方法が見つかりません。

私は配列の操作に比較的慣れておらず、Ruby 全体にも比較的慣れていません。

編集

<% @by_ticket.each_with_index do |ticketshead, id| %>
<% @tickets[id].id %>
<% end %>

@by_ticket は、コントローラーでの group_by ステートメントです。ループすると、パラメーターを満たす最後のレコードを除くすべてのレコードが返されます。私の質問は、0 ではなく 1 でループを開始する方法です。Hitham S. AlQadheeb によって提供されたリンクを確認します。

コードの2行目のタイプミスを修正するために編集してください。ありがとう。

4

1 に答える 1

0

私が考える最も簡単な解決策は、次のようにブロック内のインデックスをインクリメントすることです。

['a', 'b', 'c'].each_with_index { |item, index| puts "#{item} #{index + 1}" }
于 2013-10-29T14:29:38.817 に答える