Ich habe 2 Modelle wie folgt:Reihenfolge der Beziehung basierend auf zugeordneten Tabelle in rails4
point
ist ein Feld, in Marken-Tabelle. Für jeden Schüler gibt es viele Einträge in der Noten-Tabelle.
Ich muss eine Liste der Schüler basierend auf der Reihenfolge der höchsten Gesamtpunkte erhalten.
Ich habe versucht, wie unten:
@students = Student.all.collect{|p| [p,p.marks.pluck(:point).sum]}
@students.sort_by { |h| h[1] }.reverse!
Aber es wird zwei Elemente in jedem Array zurück, ein das Objekt und neben den Gesamtpunkten.
Gibt es eine bessere Lösung?
Danke,
Jissy
Eine kleine Änderung gab mir das Ergebnis: Student.joins (: marks) ('Studenten *, SUM (marks.point) AS total_point') .select. Gruppe ('students.id'). order ('total_point DESC'). Danke – jissy
akzeptiere die Antwort vielleicht? – jaydel