これはDRYの方法ですか? 1" 」に「n」を初期化し、これは1つの私のアプリの見解であるので、ループが進むにつれて、それをインクリメントし(と、それをプリントアウト)コードの1行で変数を初期化してインクリメントする
<% for item in @items %>
<%= n = n + 1 rescue n = 1 %>
<% end %>
これはDRYの方法ですか? 1" 」に「n」を初期化し、これは1つの私のアプリの見解であるので、ループが進むにつれて、それをインクリメントし(と、それをプリントアウト)コードの1行で変数を初期化してインクリメントする
<% for item in @items %>
<%= n = n + 1 rescue n = 1 %>
<% end %>
あなたは三項演算子を使用することができます
を<% for item in @items %>
<%= n = n ? n+1 : 1 %>
<% end %>
しかし、あなたがやろうとしているものに応じて、私はeach_with_indexを推測していることは、より適切であろう
<% @items.each_with_index do |item, n| %>
<%= n %>
<% end %>
え。
n = @items.size
いいえ、@ items.sizeは定数です(ループスコープ内で) – Zepplock
ああ、私はあなたが何かをしていることを意味すると思います[私] else [/ i]をループ内に置いて、あなたの例には表示されていませんか? –
また、ルビのnil強制をゼロになる整数に頼ることもできます。
<% for item in @items %>
<%= n = n.to_i + 1 %>
<% end %>
私は2番目のオプションが私が探していたものだと思います。 – Zepplock
"n"に初期値を割り当てる方法もありますか? – Zepplock
初期値を割り当てて、毎回1ずつインクリメントしますか?インデックスはカウンタではなく、インデックスです。固定オフセットで増やしたい場合は、印刷時に追加してください:<%= n + 5 %> – zaius