Тонкая агрегация строк с данными Rails

Я использую Rails с Slim. У меня такое представление с данными (я надеюсь, что его можно будет заполнить русским языком): введите здесь описание изображения Итак, первый столбец заполняется данными, по которым я хочу агрегировать. Я хочу увидеть что-то вроде этого:  введите описание изображения здесь Но я действительно не могу понять, как я могу это сделать. Вот мой Slim-код:

  tbody
- @managers.each do |m|
  tr
    td= m.region
    td= m.name
    ...

И у меня есть хеш с такими агрегированными данными:

{ region1: [row1, row2...],
  region2: [row3, row4...]}

Но настоящая проблема - применить rowspan только к первому td и пропустить его для всех остальных строк, кроме первой. Пожалуйста помоги.


person aelaa    schedule 22.07.2016    source источник
comment
Всегда ли будет только две записи на регион? Или может быть еще?   -  person Wes Foster    schedule 22.07.2016
comment
@WesFoster может быть больше   -  person aelaa    schedule 22.07.2016


Ответы (1)


Вы можете добиться этого так

tbody
- @managers.each do |region, data|
  - data.each_with_index do |m, index|
    tr          
      - if index.zero?
        td{rowspan: data.count}= m.region
      td= m.name
      ...
person Deepak Mahakale    schedule 22.07.2016
comment
Пока tr не закрывается, это будет только одна строка - person aelaa; 22.07.2016
comment
Он будет закрываться после каждого цикла на data - person Deepak Mahakale; 22.07.2016
comment
это не то, что я хочу. Атрибут Rowspan по-прежнему требует разрыва тега ‹tr› для новой строки - person aelaa; 22.07.2016
comment
@aelaa изменил код в соответствии с вашими требованиями. Проверь сейчас - person Deepak Mahakale; 22.07.2016
comment
теперь все в порядке. Спасибо! - person aelaa; 22.07.2016