Suchen von Datensätzen mit mehr als einem Active HABTM Verband
-
03-07-2019 - |
Frage
Ich habe zwei Modelle bekam, zusammen mit einem Hat und gehört Viele Tisch kommen. Hier können diese Modelle User und Ereignis nennen. Die Mehrheit der Nutzer haben 0 Ereignisse, während einige ein oder mehr haben. Ich möchte so etwas wie:
User.find (: alle,: Joins =>: Veranstaltungen: conditions => [ "? 'Etwas, das die Ereignisse zählt' >"], 0 )
Das Problem ist, ich bin nicht sicher, wie nur Benutzer auswählen, die 1 oder mehrere assoziierte Ereignisse haben.
Lösung
Ich habe die Antwort gefunden:
User.find(:all, :joins => :events, :select => 'DISTINCT `users`.*')
Grundsätzlich ist die users
. * Schränkt die Ergebnismenge nur die Benutzer-Tabelle an, und das Schlüsselwort distinct stellt sicher, dass jeder Benutzer nur einmal zurückgegeben.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow