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

War es hilfreich?

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
scroll top