J'utilise Rails 2.3.5.Comment trouver uniquement les utilisateurs qui ont posté au moins un commentaire
Ceci est un cas standard. Les tables sont: users, comments, user_comments. J'ai besoin de trouver tous les utilisateurs qui ont un statut 'actif' et ont posté au moins un commentaire.
Je sais que la table des commentaires peut avoir une clé étrangère mais c'est un exemple artificiel. Il y a deux utilisateurs dans la table. Il y a deux commentaires. Les deux commentaires sont postés par le premier utilisateur.
named_scope :with_atleast_one_comment, lambda { {
:joins => 'inner join user_comments on users.id = user_comments.user_id ' } }
named_scope :with_active_status, {:conditions => {:status => 'active'} }
Lorsque j'exécute
User.with_atleast_one_comment.with_active_status
je reçois deux enregistrements. Comme les deux commentaires sont postés par un utilisateur, je ne veux qu'un seul utilisateur.
Quelle est la solution?
ArgumentError: Unknown clé (s): Uniq si je named_scope: with_atleast_one_comment, lambda {{ : uniq => true, : jointures => 'jointure interne commentaires_utilisateur sur users.id = utilisateur_comments.user_id'}} –
-1: uniq n'est pas une option valide pour une étendue nommée. – EmFi