[英]How to associate models?
我正在與“用戶和組”一起構建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
Membership.rb
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.