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?
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
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.
Tags und Links ruby-on-rails activerecord has-many