我有一个用户模型和一个角色模型,它们之间有一个 has_and_belongs_to_many 的关系。连接表是 roles_users(两列 - 用户的主键和角色),没有相应的模型。
我想要一个方法,返回所有拥有特定角色的用户。在 SQL 中,这个查询语句大概是这样的:
SELECT u.id FROM role.r, roles_users ru WHERE r.role_id = #{role.id} AND r.role_id = ru.role_id
我看到Rails的activerecord有一个find_by_sql方法,但它只期望返回一个结果。
在Rails中,如何给我一个拥有特定角色的用户列表呢?
def self.find_users_with_role(role)
users = []
users << # Some ActiveRecord magic or custom code here..?
end