2016-07-22 19 views
1

Ich verwende Rails mit Slim. Ich habe diese Ansicht mit Daten (ich hoffe, dass es in Ordnung ist, mit Russisch gefüllt zu werden): enter image description here So erste Spalte füllt sich mit Daten, die ich aggregieren möchte. Ich möchte so etwas sehen: enter image description here Aber ich kann wirklich nicht herausfinden, wie ich das tun kann. Hier ist mein Schlanke Code:Slim rowspan aggregation mit Rails Daten

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

Und ich habe Hash bekam mit aggregierten Daten wie folgt aus:

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

Aber es stimmt Problem rowspan zum ersten td nur anzuwenden, und lassen Sie es für alle andere Zeilen aber zuerst. Bitte helfen.

+0

Wird es immer nur zwei Einträge pro Region sein erreichen? Oder kann es mehr geben? –

+0

@WesFoster kann mehr sein – aelaa

Antwort

4

Sie können es wie dieses

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 
     ... 
+0

Während tr nicht geschlossen ist, wird es nur eine Zeile sein – aelaa

+0

Es wird nach jeder Schleife auf 'Daten' schließen –

+0

so haben Sie so viele tr als Anzahl der Regionen –