【发布时间】:2013-05-21 17:50:15
【问题描述】:
我有一个用户和角色表。我正在使用一个有很多通过关系。我正在尝试创建一个查询,该查询将查找在数组中具有所有角色的用户。
例如
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中拥有一个角色的所有用户。
如何让这个语句给我一个交集,而不是一个联合?
【问题讨论】:
标签: sql ruby-on-rails activerecord join