簡體   English   中英

如何關聯模型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM