1

いくつかのフィールド名を繰り返して、フィールドの名前にインデックス番号を追加したいと思います(例:claim_1、など) claim_2claim_3

簡略化されたビュー:

<% (1..4).each_with_index do |index| %>
    <%= f.label :claims_index %> 
<% end %>

インデックスをそれぞれ1、2、3、4などにするにはどうすればよいですか?

4

3 に答える 3

1
<% (1..4).each_with_index do |index| %>
    <%= f.label "claim_#{index}" %> 
<% end %>
于 2012-08-03T11:01:26.247 に答える
1

each_with_index実際、これにはイテレータは必要ありません-

<% 1.upto(4) do |i| %>
  <%= f.label "claims_#{i}" %> 
<% end %>
于 2012-08-03T11:36:39.857 に答える
0

これがあなたが求めているものであるかどうかはわかりませんが、each_with_indexは2つの引数を取るので、次のことができます。

<% @claims.each_with_index do |claim,index| %>
   <%= "#{index+1}: #{claim.name}" %>
<% end %>

これにより、各クレーム名とインデックス(1,2,3,4)が出力されます。+1を使用すると、0ベースではなく1ベースになります。

または、単に次を使用します。

<% (1..4).each do |i| %>
  <%= i %>
<% end %>
于 2012-08-03T11:16:31.630 に答える