Trova i record con più di un'Associazione HABTM ActiveRecord
-
03-07-2019 - |
Domanda
Ho due modelli, uniti da una tabella di join Has e Belongs To Many. Consente di chiamare questi modelli Utente ed Evento. La maggior parte degli utenti ha 0 eventi, mentre pochi ne hanno uno o più. Voglio fare qualcosa del tipo:
User.find (: all,: joins = >: events,: condizioni = > [" 'Qualcosa che conta gli eventi' >? "], 0)
Il problema è che non sono sicuro di come selezionare solo gli utenti che hanno 1 o più eventi associati.
Soluzione
Ho trovato la risposta:
User.find(:all, :joins => :events, :select => 'DISTINCT `users`.*')
Fondamentalmente, utenti
. * limita il set di risultati solo alla tabella degli utenti e la parola chiave DISTINCT assicura che ogni utente venga restituito una sola volta.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow