2013-08-27 77 views
2

使用Rails 3.2和Ruby 1.9。當我們編碼@objects.each_with_index do |object, i|時,i通常以0,1,2開頭。等Rails each_with_index在索引中下降順序

比方說,我們有@objects = [A, B, C, D, E],輸出是:

<% @objects.each_with_index do |object, i| %> 
    <%= i %> - <%= object %><br> 
<% end %> 

# output 
0 - A 
1 - B 
2 - C 

我想有這個代替:

# output 
2 - A 
1 - B 
0 - C 

如何做到這一點?

回答

8

<%= @objects.length - 1 - i %> - <%= object %><br>

這將在。減去陣列的長度的索引,得到所需的輸出。

你必須總是一個。減去從長度由於具有長度3具有索引0,1一個陣列,2

1

這是如何?

a = [:a,:b,:c] 
a.each.with_index(-a.length+1) {|e,i| print -i," ",e,"\n"} 

輸出:

2 a 
1 b 
0 c 

你一個可能是類似的東西:

<% @objects.each.with_index([email protected]+1) do |object, i| %> 
    <%= -i %> - <%= object %><br> 
<% end %>