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.

È stato utile?

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
scroll top