Ruby / Rails / HTML / HAML - создать таблицу из двух столбцов с ячейками первого столбца, охватывающими динамическое число строк - PullRequest
2 голосов
/ 09 марта 2012

Я пытаюсь создать HTML-таблицу в HAML, в которой есть первый столбец, в котором каждая ячейка занимает динамическое число строк на основе количества значений в массиве, который будет разбит на несколько ячеек во втором столбце. Так, например, если 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 заканчивается в первом столбце второй строки, а не во втором столбце второй ряд. Как я могу исправить свой код, чтобы таблица работала так, как я ее описал?

1 Ответ

7 голосов
/ 12 марта 2012

Не знаю, понимаю ли я вас, но думаю, что это может работать со следующим кодом:

%table
- @products.each do |item|
  %tr
    %td{:rowspan => "#{item.array.size}"}= "#{item.name}"
    %td
      - item.array.each do |item2|
        %tr
          %td= "#{item2.name}"
...