在我的数据库中,我在用户和角色之间建立了多对多关系 ( HABTM )。我正在尝试获取与特定秘书关联的用户的所有角色名称。
我设法将以下内容拼凑在一起:
class Secretary < ActiveRecord::Base
def getRoles
rolenames = Set.new
Role.all.map { |role| role.users.map { |user| rolenames << role.name if user.manager.secretary == self } }
rolenames.to_a
end
end
...这行得通,但似乎一个精心设计的“where”语句应该产生相同的结果,而不会对数据库造成太多影响。
是否可以将上述内容转换为更“本机”的 ActiveRecord 查询?