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é
voici une excellente réponse de stackoverflow.com/questions/14660644/...
group(['contact_id','event_id'])
?voici une excellente réponse de stackoverflow.com/questions/14660644/...
OriginalL'auteur Matt Elhotiby | 2012-06-16
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur MikDiet
Simplement, essayez de
Il a travaillé pour moi. Donc, j'ai posté en tant que réponse à aider les autres.
OriginalL'auteur Manish Shrivastava
Demander à la base de données pour faire le regroupement
le résultat est un hachage de chaque touche est un tableau du contact et de l'id de l'événement, et la valeur est le nombre de.
Donc, si vous voulez des tableaux de trois
name
de lacontact
oudate
d'unevent
(dans le résultat de la requête elle-même)?OriginalL'auteur eweb