0
У меня есть массив массивов @iterated_orders
, как это:Неожиданное <tr> когда зацикливание
[[1, "Don", 3], [nil, nil, 4], [2, "Vri", nil]]
и код, на мой взгляд, как это:
%table
- @iterated_orders.each do |day, day_name, order_id|
- unless day.blank?
%tr
%td.day= day
%td= order_id
Я бы ожидать, что это выход этот HTML:
<tr>
<td class="day">1 Don</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td class="day">2 Vri</td>
<td></td>
<td></td>
</tr>
Но это выводит этот HTML:
<tr>
<td class="day">1 Don</td>
<td></td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td class="day">2 Vri</td>
<td></td>
</tr>
<tr>
<td></td>
</tr>
Почему дополнительный <tr>
и является <td>
с order_id не добавляется к существующему <tr>
?
Правильно отредактируйте фрагмент haml, так как haml работает с отступом, мы не сможем помочь, если неясно. –
Где вы выводите 'day_name', это не в цикле. – Iceman
'day_name' будет прикрепляться к' day' в том же '
ответ
Вашего Haml фактически делает:
При просмотре в браузере, то браузер будет исправить это, чтобы быть действительной HTML, включая добавление дополнительных
tr
элементов, которые я подозреваю, где вы видите свой результат (хотя в Chrome у меня что-то другое).td
сorder_id
s не добавлены к предыдущимtr
, потому чтоtr
был закрыт в этой точке. Ваш Haml читает как «если толькоday
пуст, вставьте новую строку, содержащую ячейку с днем (и закройте ее), а затем вставьте некоторые ячейки таблицы с помощьюorder_id
s».Лучший способ достичь того, что вы пытаетесь сделать с Haml, - это сначала получить ваши данные в форме, соответствующей вашему предполагаемому результату. Быть знакомым с методами
Enumerable
может помочь здесь. В частности, в этом случаеchunk_while
, вероятно, что мы хотим:Теперь вы можете перебрать эту структуру, чтобы произвести HTML:
Это производит (с, например, данные):
Это не совсем то, что у вас есть (у вас есть дополнительный
td
во втором ряду). Возможно, вам придется немного исправить данные, чтобы получить равное количество элементов за каждый день.источник
2016-12-28 13:49:59 matt
Спасибо! Я всегда забываю о неявном закрывающем теге! – John
Смежные вопросы