2009-07-19 8 views

risposta

16

È possibile utilizzare un operatore ternario:

<% for item in @items %> 
    <%= n = n ? n+1 : 1 %> 
<% end %> 

Ma, a seconda di ciò che si sta cercando di fare, sto cercando di indovinare un each_with_index sarebbe più appropriato

<% @items.each_with_index do |item, n| %> 
    <%= n %> 
<% end %> 
+0

Ah bello, immagino che la seconda opzione sia quella che stavo cercando. – Zepplock

+0

C'è anche un modo per assegnare un valore iniziale a "n"? – Zepplock

+2

Assegnare un valore iniziale e incrementare di 1 ogni volta? L'indice non è un contatore: è un indice. Se vuoi aumentarlo con un offset fisso, aggiungilo quando stampi: <%= n + 5 %> – zaius

0

Um.

n = @items.size 
+0

No, @ items.size è una costante (all'interno di un loop) – Zepplock

+0

Ah, presumo tu intenda che stai facendo qualcosa [i ] else [/ i] con esso nel ciclo, non mostrato nel tuo esempio? –

5

Si può anche fare affidamento su zero di coercizione del rubino su un numero intero che risulta in zero.

<% for item in @items %> 
    <%= n = n.to_i + 1 %> 
<% end %> 
Problemi correlati