записи количества рельсов - PullRequest
0 голосов
/ 28 марта 2011

Допустим, у меня есть следующая автомобильная петля, и я хочу отобразить 4 машины в одном ряду, а затем создать новый ряд и т. Д.

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

Итак, я выгляжу так:

car1 car2 car3 car4

car5 car6 car7 car8

car9 car10 ... ... ...

Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 28 марта 2011
<table>
  <% @cars.each_slice(4) do |cars| %>
    <tr>
      <% cars.each do |car| %>
        <td><%= car.name %></td>
      <% end %>
    </tr>
  <% end %>
</table>

Добавление класса к последнему td в строке:

<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>
1 голос
/ 28 марта 2011

Вы можете воспользоваться методом each_slice из Enumerable, например, вот так:

[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]] 

Итак, ваш код будет выглядеть так:

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

Дело в том, всегда проверяйте Перечисляемую страницу на такие вещи. Ruby предоставляет такие удивительные методы, как этот!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...