2016-08-24 37 views
0

我有两个型号说用户和角色导轨联接查询的多个联合搜索

可以说我有3个用户“A”,“B”和“C”和我有3个角色的“X”,“Y ”,‘Z’ 和用户的关系是has_many角色

让我们假设一个具有角色X,B有X和Y和C的作用X

我应该如何修改我的查询独自获得B的同时具有X和Y角色

这是我的查询,它返回用户wi个X或Y

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

我认为你必须与ID普通的SQL或用Ruby代码分裂。 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'"]) 

注:没有测试