【发布时间】:2013-08-28 17:57:45
【问题描述】:
在我的数据库中,用户和角色之间存在多对多关系 (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 查询?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 rails-activerecord