Question

J'ai deux modèles, rejoints par une table de jointures Has et Belongs To Many. Permet d'appeler ces modèles User et Event. La majorité des utilisateurs ont 0 événements, alors que peu en ont un ou plusieurs. Je veux faire quelque chose comme:

User.find (: all,: join = = >: events,: conditions = > [" 'Quelque chose qui compte les événements' >? "], 0)

Le problème est que je ne sais pas comment sélectionner uniquement les utilisateurs ayant un ou plusieurs événements associés.

Était-ce utile?

La solution

J'ai trouvé la réponse:

User.find(:all, :joins => :events, :select => 'DISTINCT `users`.*')

Fondamentalement, utilisateurs . * limite le jeu de résultats à la seule table d'utilisateurs, et le mot clé DISTINCT garantit que chaque utilisateur n'est renvoyé qu'une seule fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top