#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 %>