我正试图在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最终出现在第二行的第一列,而不是第二行第二列。如何修复我的代码以使表按我所描述的那样工作?
我不知道我是否理解你,但我认为它可以使用以下代码:
%table
- @products.each do |item|
%tr
%td{:rowspan => "#{item.array.size}"}= "#{item.name}"
%td
- item.array.each do |item2|
%tr
%td= "#{item2.name}"