Wie zu isolieren / abrufen / Zählung einer Teilmenge der zurückgegebenen Datensätze in Rails
-
01-10-2019 - |
Frage
Ich schreibe eine Bericht Armaturenbrett für eine Rails-Anwendung. Das Armaturenbrett ist für Benutzerdaten und zur Zeit läuft es mehr eine Auswahlabfragen zählen die vier oder fünf Berichte auf der Seite zu bauen. Ich bin sicher, dass es eine effizientere Art und Weise, dies zu tun. Wie würde ich Strukturierung gehen über die Controller-Methode, so dass es nur eine Abfrage ausgeführt wird, und dann Parsen / aufteilt die für die einzelnen Berichte benötigten Teilmengen?
Zum Beispiel hat ein Benutzer ein Geschlecht, ein Alter und ein Einkommen Bereich. Statt tun
@men = User.count(:conditions => ['gender = ?', 'm']
@women = User.count(:conditions => ['gender = ?', 'f']
@age = User.count(:conditions => ['age_range = ?', 1]
etc.
Kann ich nur einen einzigen
User.find(:all, :select => 'id,gender,age_range,income_range')
Und dann analysiert, was ich brauche?
Jede Hilfe sehr geschätzt wird.
Danke.
Lösung
Ich glaube, Sie können diese
tun@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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow