Wie erhält man die höchste Anzahl an assoziierten Modellen (Rails)?

8

Ein Benutzer hat viele Lösungen

Wie bestelle ich Nutzer mit den meisten Lösungen?

Ich versuche, die Top-Ten-Benutzer zu finden, aber ich bin mir nicht sicher, wie der sauberste oder effizienteste Weg dazu ist?

Hat jemand ein Beispiel, das nicht zu rechenintensiv ist?

    
amaseuk 16.03.2012, 14:49
quelle

3 Antworten

4

Wenn Sie wirklich einen schnellen Weg wollen, setzen Sie counter_cache auf die Lösungen eines Benutzers (haben Sie eine solutions_count -Spalte in Ihrem User ) und sortieren Sie nach dieser Spalte. Sie müssen diesen Zähler nicht verwalten, da Rails dies für Sie erledigt. Sie können mehr über counter_cache in den Schienen-Guides

lesen     
Andrei S 16.03.2012, 15:06
quelle
18
%Vor%     
gayavat 16.03.2012 14:59
quelle
4

Angenommen die folgenden Modelle

%Vor%

Dann ist es am besten counter_cache die solutions_count und Reihenfolge von ihm. mehr auf counter_cache

Die Abfrage wird dann

sein %Vor%

Vergessen Sie nicht, die Spalte solutions_count zu indizieren.

    
egze 16.03.2012 15:08
quelle