2011-12-01 13 views
11

Jak dodać licznik do pętli .each? Każdy łatwy sposób to zrobić? Próbowałem poniżej, ale to nie działa. Dzięki!Jak uzyskać licznik dla pętli 3 "za każdym razem"?

<% @album.each do |e| %> 
    <%= e %> #my_counter_does_not_work :) 
    <%= link_to e.name, :controller => "images", :action => "album", :album_id => e.id, :album_name => e.name %> 
<% end %> 
+0

Czy próbujesz przejrzeć listę? czy @ album jest listą czegoś? nazywanie go wydaje się być pojedynczym obiektem, którego nie można powtórzyć, ponieważ pojedynczy obiekt nie jest domyślnie możliwy do sprawdzenia. Nieco więcej informacji na ten temat pomoże lepiej zdiagnozować problem. – jaydel

+0

@ album jest listą albumów z db – Francois

Odpowiedz

39

Zastosowanie each_with_index: indeks zostanie automatycznie Twój licznik (należy jednak pamiętać, że zaczyna się od 0, a nie 1):

<% @album.each_with_index do |e, index| %> 
    <%= link_to e.name, :controller => "images", :action => "album", :album_id => e.id, :album_name => e.name %> 
<% end %> 
+0

dziękuję to działało :) – Francois

+7

Od rubin 1.9.1 można łańcuch '.with_index' na każdej metodzie, która zwraca Enumerator, aby uzyskać ten sam wynik. Możesz także podać liczbę całkowitą jako argument reprezentujący indeks początkowy, jeśli z jakiegoś powodu nie powinno być 0. – cvshepherd

+0

Dobrze wiedzieć, dziękuję! –

Powiązane problemy