2013-02-20 3 views
7

Ich baue eine Inventardatenbank und es hat 2 Spalten, nach denen ich gruppieren möchte (Hersteller und Modell). Wie würde ich nach diesen Spalten gruppieren und eine Summe der Artikelgruppe bereitstellen?Wie gruppiere ich nach zwei Spalten und stelle eine Summe der gruppierten Elemente zur Verfügung

Zum Beispiel:

Qty Manufacturer Model 
1 Sony   MF-2002 
1 Sony   MF-2002 
1 Planar  PL2410W 
1 Planar  PL2410W 
1 Planar  PL2410W 
1 Planar  PL3610D 
1 Planar  PL3610D 

Ergebnis:

Qty Manufacturer Model 
2 Sony   MF-2002 
3 Planar  PL2410W 
2 Planar  PL3610D 

Antwort

9

ein Item Modell Angenommen, kann ein Array an die Methode übergeben group wie folgt:

Item.group(["manufacturer", "model"]).sum(:qty) 
# => {["Planar", "PL2410W"]=>3, ["Planar", "PL3610D"]=>2, ["Sony", "MF-2002"]=>2} 
Verwandte Themen