class User < ActiveRecord::Base
has_many :group_memberships
has_many :groups, :through => :group_memberships # Edit :needs to be plural same as the has_many relationship
end
现在您可以像对待普通的 has_many一样对待它,但是在需要的时候可以从关联模型中获益。
请注意,您也可以使用 has_one来完成此操作。
编辑: 使向组添加用户变得容易
def add_group(group, role = "member")
self.group_associations.build(:group => group, :role => role)
end