Comment isoler / récupérer / nombre un sous-ensemble d'enregistrements renvoyés dans Rails
-
01-10-2019 - |
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.
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