rails中的has_many关联表方法。如何从关联表中检索数据?

时间:2011-12-11 18:10:06

标签: ruby ruby-on-rails-3 join models

我正在创建一个应用程序,允许用户创建团队,然后向其添加成员。

class User < ActiveRecord::Base
    has_many :memberships
    has_many :teams, :through => :memberships
end

class Team < ActiveRecord::Base
    has_many :memberships
    has_many :users, :through => :memberships
end

class Membership < ActiveRecord::Base
    belongs_to :team
    belongs_to :user
end

Membership表包含ID,TEAM_ID,USER_ID,PERMISSIONS

我现在可以访问Team.users和Team.memberships,但我希望我需要做的是将它们组合在一起,这样我就可以像这样访问用户的权限列:

Team.users.membership.permissions

OR

Team.users.permissions

但即使我认为有一个简单的答案,我也无法理解。用户和成员之间的has_many关联有效,因为我可以使用Team.users访问团队中的用户。但我不明白如何或为什么来自Membership的Permissions列也没有加入到用户对象中。非常感谢您对此主题的任何帮助。

1 个答案:

答案 0 :(得分:2)

由于用户仅通过会员资格与团队建立联系,因此不仅仅是Team.memberships.map(&:permissions)您需要的代码吗?