2016-03-04 87 views
1

我正在構建一個帶有用戶和組的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 

回答

0

哦。我必須在用戶加入之前保存該組。

def create (user) 
    @group = Group.new(create_group_params) 
    @group.save 
    user.join(@group) 
    user.save 
end