Ich habe 3 Modelle. Benutzer, Sprache, Link. Ein Link gehört einem Benutzer und einer Sprache. Ich möchte eine Liste der fünf aktivsten Sprachen auf der Startseite erstellen. Also möchte ich fünf Sprachen in der absteigenden Reihenfolge der Anzahl der verschiedenen Benutzer herausziehen, die Links unter dieser Sprache gepostet haben.Auftragssätze basierend auf der Anzahl der zugehörigen Datensätze von verschiedenen Benutzern in Schienen
Zum Beispiel. Spanisch hat 6 Links, die alle von 3 unterschiedlichen Nutzern gepostet werden. Moroccon hat 7 Links von 2 verschiedenen Nutzern gepostet. Französisch hat 5 Links von 5 verschiedenen Nutzern.
Die Reihenfolge der Sprachen muss also Französisch, Spanisch, Marokkanisch sein.
Hier ist die Modelle für jedes Objekt: -
class User < ApplicationRecord
has_many :links
class Language < ApplicationRecord
belongs_to :user
has_many :links
class Link < ApplicationRecord
belongs_to :user
belongs_to :language
Ich bin ein Anfänger in Schienen, aber ich habe ein bisschen ausprobiert, um zu sehen, wie es gemacht werden kann.
Zum Beispiel probierte ich Link.select(:user_id).distinct.count
, was in der Zählung der einzelnen Benutzer, die Links veröffentlicht haben. Aber ich weiß nicht, wie man die Sprachen auf der Grundlage der Zählung der unterschiedlichen Benutzer bestellt, die Verbindungen unter dieser Sprache bekannt gegeben haben. Hilfe wäre sehr willkommen.
Welche Version von 'Rails' verwenden Sie? –