我有一个用户和角色表。我正在使用一个有很多通过关系。我正在尝试创建一个查询,该查询将查找在数组中具有所有角色的用户。
前任。
role_ids = [2, 4, 6]
User.filter(role_ids) would return all users that have roles with ids 2, 4, 6.
这就是我到目前为止所拥有的。
def self.filter(role_ids)
results = User.joins(:roles).where(roles: {id: role_ids} )
end
该语句的问题在于它返回了至少在 role_ids 中具有一个角色的所有用户。
我如何让这个声明给我一个交集,而不是一个联合?