2011-12-01 40 views
11

làm cách nào để thêm bộ đếm vào vòng lặp .each? Bất kỳ cách dễ dàng để làm điều này? Tôi đã thử dưới đây nhưng nó dường như không hoạt động. Cảm ơn!Làm thế nào để tôi có được một bộ đếm cho một vòng lặp 3 "mỗi vòng lặp"?

<% @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

bạn đang cố lặp qua danh sách? @Album có phải là danh sách thứ gì đó không? bằng cách đặt tên nó có vẻ là một đối tượng duy nhất, mà bạn không thể lặp lại vì một đối tượng duy nhất không thể lặp lại theo mặc định. Một chút thông tin ở đây sẽ giúp chẩn đoán vấn đề của bạn tốt hơn. – jaydel

+0

@album là một danh sách các album từ db – Francois

Trả lời

39

Sử dụng each_with_index: chỉ số sẽ tự động truy cập của bạn (nhưng lưu ý nó bắt đầu từ 0 và không 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

cảm ơn điều này đã làm việc :) – Francois

+7

Như của ruby ​​1.9.1 bạn có thể chuỗi một '.with_index' trên mọi phương thức trả về một Bộ đếm để có được kết quả tương tự. Bạn cũng có thể cung cấp một số nguyên làm đối số để biểu diễn chỉ mục bắt đầu, nếu vì lý do nào đó không nên là 0. – cvshepherd

+0

Điều cần biết, cảm ơn! –

Các vấn đề liên quan