Initialisieren und eine Variable in einer Codezeile Inkrementieren
-
18-09-2019 - |
Frage
Ist das die trockenste, wie es in Ruby zu tun?
<% for item in @items %>
<%= n = n + 1 rescue n = 1 %>
<% end %>
, die „n“ auf ‚1" initialisiert und erhöhen als die Schleife fortschreitet (und druckt es aus), da dies in der eigenen Ansichten meiner app ist
Lösung
Sie können einen ternären Operator verwenden:
<% for item in @items %>
<%= n = n ? n+1 : 1 %>
<% end %>
Aber, je nachdem, was Sie zu tun versuchen, vermute ich ein each_with_index angemessen wäre
<% @items.each_with_index do |item, n| %>
<%= n %>
<% end %>
Andere Tipps
Sie können auch auf Rubys nil Zwang auf eine ganze Zahl verlassen, die in Null ergibt.
<% for item in @items %>
<%= n = n.to_i + 1 %>
<% end %>
Um.
n = @items.size
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow