我正在使用“用户和组”构建ROR应用,我希望能够将它们与称为“成员资格”的关联模型链接。
我的问题是,当我尝试使用一个成员创建一个组时,members
新组的数组始终为空。
我尝试创建一个这样的组:
def create (user)
@group = Group.new(create_group_params)
user.join(@group)
user.save
@group.save
end
但是@group.members
在我打印出来时是空的。如何使用户成为组的成员?
这是我的模型:
Group.rb
class Group < ActiveRecord::Base
has_many :passive_memberships, class_name: "Membership",
foreign_key: "club_id",
dependent: :destroy
has_many :members, through: :passive_memberships, source: :member
end
User.rb
class User < ActiveRecord::Base
has_many :active_memberships, class_name: "Membership",
foreign_key: "member_id",
dependent: :destroy
has_many :memberships, through: :active_memberships, source: :club
def join(group)
active_memberships.create(club_id: group.id)
end
end
会员资格
class Membership < ActiveRecord::Base
belongs_to :member, class_name: "User"
belongs_to :club, class_name: "Group"
validates :member_id, presence: true
validates :club_id, presence: true
end
哦。我必须先保存该组,然后用户才能加入它。
def create (user)
@group = Group.new(create_group_params)
@group.save
user.join(@group)
user.save
end
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句