2013-08-27 12 views
2

레일즈 3.2 및 루비 1.9 사용하기. @objects.each_with_index do |object, i|을 코딩 할 때 i은 보통 0, 1, 2으로 시작합니다. 이 대신이 레일스 each_with_index에서 색인을 내림차순으로 내림차순

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

# output 
0 - A 
1 - B 
2 - C 

나는 싶어 : 등

은의 우리가 @objects = [A, B, C, D, E] 있고, 출력이 있다고 가정 해 봅시다

# output 
2 - A 
1 - B 
0 - C 

어떻게이 일을?

답변

8

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

이 배열의 길이의 인덱스, 원하는 출력을 빼지주는 것이다.

당신은 항상 길이 3 인덱스 0, 1을 가지고있는 배열 때문에 길이에서 하나를 빼지해야

,

1

이 어떻게이?

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

출력 :

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

2 a 
1 b 
0 c 

귀하의 하나 그런 일이 될 수

관련 문제