Comment isoler / récupérer / nombre un sous-ensemble d'enregistrements renvoyés dans Rails

StackOverflow https://stackoverflow.com/questions/3150704

Question

J'écris un tableau de bord de rapports pour une application de rails. Le tableau de bord est pour les données utilisateur, et actuellement il est en cours d'exécution multiples compte un requêtes de sélection pour construire les quatre ou cinq rapports sur la page. Je suis sûr qu'il ya un moyen plus efficace de le faire. Comment pourrais-je aller de structurer la méthode de façon à ce qu'il fonctionne une seule requête, puis Parsis / subdivise les sous-ensembles nécessaires pour les rapports individuels?

Par exemple, un utilisateur a un sexe, un âge et une tranche de revenu. Au lieu de faire

@men = User.count(:conditions => ['gender = ?', 'm']
@women = User.count(:conditions => ['gender = ?', 'f']
@age = User.count(:conditions => ['age_range = ?', 1]
etc.

Puis-je faire un seul

User.find(:all, :select => 'id,gender,age_range,income_range')

Et puis parse ce que je besoin?

Toute aide est appréciée.

Merci.

Était-ce utile?

La solution

Je crois que vous pouvez le faire

@users = User.all

@men = @users.select{|u| u.gender == 'm'}.size
@women = @users.select{|u| u.gender == 'f'}.size
@age = @users.select{|u| u.age_range == 1}.size
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top