2016-08-24 6 views
0

上のクエリに参加します」、 『Z』 とユーザーの関係has_many役割Railsは、私は2つのモデルがユーザーとロール</p> <p>がY」、私は3人のユーザー「A」、「B」と「C」を持っていると私は3つの役割「X」を持っているとしましょうと言ってい複数の協会検索

は、AがロールXを持っていると仮定しますが、Bは、XとYとCは、ロールXを持っている

どのように私はこれだけではBを得るために、私のクエリを変更する必要があります持っていますXとYの両方の役割を持っています

これは私の質問です。 XまたはY

User.joins(:roles).where("roles.name IN (?)", ["X", "Y"]) 
+0

私はあなたが普通のSQLまたはRubyコードで除算してIDにあると思います。 http://stackoverflow.com/questions/10285761/get-records-having-both-values-in-in-using-sql – AndreyS

答えて

0

いずれか番目の私は仕事がオンした後、クエリの下に、私はちょうど実装あなたのコード&を見て実装すると思います。

User.joins("LEFT JOIN roles ON roles.name = name").where(["name = 'X', 'Y'"]) 

注:テストされていない

関連する問題