我正在尝试在HAML中创建一个HTML表,该表具有第一列,其中每个单元格根据数组中的值的数量跨越动态行数,该数组将在第二列中的多个单元格中分割。因此,例如,如果Array.size == 2,那么第一列中的第一个单元将具有rowspan = 2,第二列将在第一行中具有Array [0]并且在第二行中具有Array [1]并且第1列值将跨越两行。我写的HAML代码如下:
- @array1.each do |item|
%tr
%td{:rowspan => "#{item.array.size}"}= time_tag(item.created_at)
- item.array.each do |item|
%td= "#{item.name}"
%tr
我遇到的问题是HAML在每次循环后通过第二个块自动插入一组行标记,这导致第二个item.name以第二行的第一列而不是第二列的第二列结束第二排。如何修复我的代码以使表格按照我的描述工作?
答案 0 :(得分:7)
我不知道我是否理解你,但我认为它可以使用以下代码:
%table
- @products.each do |item|
%tr
%td{:rowspan => "#{item.array.size}"}= "#{item.name}"
%td
- item.array.each do |item2|
%tr
%td= "#{item2.name}"