Rechercher des enregistrements avec plusieurs associations ActiveRecord HABTM
-
03-07-2019 - |
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.
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