레일

2011-03-27 5 views
0

하자 난 다음 차 루프가 있다고 기록을 계산하고 내가 한 행에 4 차를 표시 한 다음 새 행을 만들려 등레일

<table> 
    <tr> 
    <% @cars.each do |car| %> 
     <td><%= car.name %></td> 
    <% end %> 
    </tr> 
</table> 

그래서 나는 다음과 같습니다

car1을 car2의 car3는

car5 car6 car7 car8

car9 car10 ... ...

을 car

어떻게해야합니까?

답변

2
<table> 
    <% @cars.each_slice(4) do |cars| %> 
    <tr> 
     <% cars.each do |car| %> 
     <td><%= car.name %></td> 
     <% end %> 
    </tr> 
    <% end %> 
</table> 

:

<table> 
    <% @cars.each_slice(4) do |cars| %> 
    <tr> 
     <% cars.each do |car| %> 
     <td <%= "class='my_class'" if car == cars.last %>> 
      <%= car.name %> 
     </td> 
     <% end %> 
    </tr> 
    <% end %> 
</table> 
+0

좋아! 다른 행을 추가하기 전에 마지막 TD에 클래스를 추가하려면 어떻게해야합니까? – andkjaer

+0

내 업데이트를 참조하십시오. – fl00r

+0

매력처럼 작동합니다 - 감사합니다 : O) – andkjaer

1

당신은 Enumerable에서, 그래서 같은 예에서 each_slice method을 활용할 수 있습니다

[1,2,3,4,5,6,7,8,9,10].each_slice(4).to_a 
#=> [1, 2, 3, 4], [5, 6, 7, 8], [9, 10]] 

같은 코드는 다음과 같습니다 포인트는 항상 일에 대한 Enumerable page을 확인한다

<table> 
    <% @cars.each_slice(4) do |cars| %> 
    <tr> 
     <% cars.each do |c| %> 
     <td><%= c.name %></td> 
     <% end %> 
    </tr> 
    <% end %> 
</table> 

이렇게. Ruby는 이와 같은 놀라운 방법을 제공합니다!

행에 td을 마지막으로 클래스를 추가