Wie zu isolieren / abrufen / Zählung einer Teilmenge der zurückgegebenen Datensätze in Rails

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

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.

War es hilfreich?

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
scroll top