Данные в столбцах и строках, одна запись в одной ячейке

#ruby-on-rails #ruby-on-rails-3

#ruby-on-rails #ruby-on-rails-3

Вопрос:

у меня есть это:

 <% @devices.each do |device| %>
<tr>
<td>
    <% if device.photo.exists? then %>
    <%= image_tag device.photo.url(:small) %></br>
    <% end %>
    <%= link_to device.name, device %></br>
    <%= device.description %></br>
    <%= link_to 'Redaguoti', edit_device_path(device) %></br>
    <%= link_to 'Ištrinti', device, :confirm => 'Ar tikrai norite ištrinti šį prietaisą?', :method => :delete %>
</td>


<% end %>
  

Я хочу получить такие данные:

таблица

Спасибо

Ответ №1:

Вы смотрели in_groups_of ? Из методов массива API

Если я правильно понял ваш вопрос, это должно сработать!

Ответ №2:

Используйте each_with_index вместо each. Таким образом, вы также можете получить индекс, например 1,2,3 .. и делать с ним все, что захотите.

http://www.ruby-doc.org/core/classes/Enumerable.html#M001511

Ответ №3:

Вам нужно обернуть каждую ячейку в <td> amp; </td> . Удалите <br> теги, они создают новые строки, а не новые ячейки.

По сути, внутри вашего цикла вы создаете, <tr> чтобы создать свою строку, затем <td>SOME DATA</td> для каждой ячейки, затем закрываете </tr> .

 <% @devices.each do |device| %>
<tr>
<td>
    <% if device.photo.exists? then %>
    <%= image_tag device.photo.url(:small) %></br>
    <% end %>
</td>
<td>
    <%= link_to device.name, device %>
</td>
<td>
    <%= device.description %>
</td>
<td>
    <%= link_to 'Redaguoti', edit_device_path(device) %>
</td>
<td>
    <%= link_to 'Ištrinti', device, :confirm => 'Ar tikrai norite ištrinti šį prietaisą?', :method => :delete %>
</td>
</tr>

<% end %>