Comment le groupe par deux conditions dans rails 3 et boucle à travers eux

Ok, donc j'ai un modèle de vente

recent_sales = Sale.recent
 => [#<Sale id: 7788, contact_id: 9988, purchasing_contact_id: 876, event_id: 988, #<BigDecimal:7fdb4ac06fe8,'0.0',9(18)>, fulfilled_at: nil, skip_print: nil, convention_id: 6, refund_fee: #<BigDecimal:7fdb4ac06de0,'0.0',9(18)>, processing: false>, #<Sale id: 886166, , contact_id: 7775,

recent_sales.count
=> 32

Je sais que je peux faire ce

grouped_sales = recent_sales.group_by(&:contact_id).map {|k,v| [k, v.length]}
=> [[9988, 10], [7775, 22]]

Mais ce que j'ai vraiment besoin n'est pas seulement le regroupement contact_id mais aussi event_id de sorte que le résultat final ressemble à ceci

=> [[9988, 988, 5], [9988, 977, 5], [7775, 988, 2], [7775, 977, 20]]

j'ai donc le event_id et le groupement est de les diviser correctement...toutes les idées sur la façon de faire

J'ai essayé

 recent_sales.group('contact_id, event_id').map {|k,v| [k, k.event, v.length]}

mais pas y aller

avez-vous essayé group(['contact_id','event_id'])?
voici une excellente réponse de stackoverflow.com/questions/14660644/...

OriginalL'auteur Matt Elhotiby | 2012-06-16