【发布时间】:2011-12-11 18:10:05
【问题描述】:
我正在创建一个应用程序,允许用户创建团队,然后向他们添加成员。
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
或
Team.users.permissions
但即使我认为有一个简单的答案,我也无法弄清楚。用户和会员资格之间的 has_many 关联有效,因为我可以使用 Team.users 从团队访问用户。但我不明白 Membership 的 Permissions 列如何或为什么没有加入到用户对象中。非常感谢有关此主题的任何帮助。
【问题讨论】:
标签: ruby ruby-on-rails-3 join models