Я создаю представление для печати этикеток.У меня есть HTML'd / CSS'd таблица с правильными размерами для 2 столбцов по 5 меток:
<div id="inventory_labels">
<table class="table-bordered" id="avery8163">
<thead>
<tr>
<td style='width: .155in;'></td>
<td style='width: 4in;'></td>
<td style='width: .19in;'></td>
<td style='width: 4in;'></td>
<td style='width: .155in;'></td>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="5"></td>
</tr>
</tfoot>
<tbody>
<% 40.times do # just a placeholder for the actual loop / partial %>
<tr>
<td></td>
<td>LABEL #1 (should be a record)</td>
<td></td>
<td>LABEL #2 (should be a record)</td>
<td></td>
</tr>
<% end %>
</tbody>
</table>
</div>
И SCSS:
#inventory_labels {
width: 8.5in;
margin-right: auto;
margin-left: auto;
}
table#avery8163 {
table-layout: fixed;
width: 8.5in;
thead, tfoot {
td {
height: .5in;
}
}
tbody {
td {
height: 2in;
}
}
}
@media print {
table#avery8163 {
thead {
display: table-header-group;
}
tfoot {
display: table-footer-group;
}
}
}
Я бы хотелиспользуйте частичное для циклического перебора записей в <tbody>
, но мне нужно зацикливаться на 2 за раз, по одному для каждого "LABEL".
Есть предложения или идеи?
Iдействительно играл с форматированием как div (как эта стратегия из темных веков) вместо столбцов таблицы, но математика стала очень запутанной, так как поле страницы и желоба не выстраиваются хорошо.
FIRST RUN
Это действительно уродливо, верно?
@counts
- это массив записей ActiveRecord, через который я хочу пройти, определенный в контроллере.
<tbody>
<% n = 0 %>
<% @loop.times do # @loop = (@counts.count/2).ceil %>
<tr>
<td></td>
<td>
<%= render partial: 'label', locals: { count: @counts[n] } %>
<% n += 1 %>
</td>
<td></td>
<td>
<% if @counts[n].present? %>
<%= render partial: 'label', locals: { count: @counts[n] } %>
<% end %>
<% n += 1 %>
</td>
<td></td>
</tr>
<% end %>
</tbody>