簡體   English   中英

factory_girl:通過關聯有很多

[英]factory_girl: has many through association

我在項目和用戶之間有很多很多的關系。 我的項目模型有:

  has_many :project_members, dependent: :destroy, foreign_key: 'gallery_id'
  has_many :members, through: :project_members,
                     class_name: 'User',
                     foreign_key: 'member_id' 

用戶模型:

  has_many :project_members, dependent: :destroy, foreign_key: 'member_id'
  has_many :member_projects, through: :project_members,
                             source: :member_project

和project_member模型:

  belongs_to :member_project, foreign_key: 'gallery_id', class_name: 'Project'
  belongs_to :member, foreign_key: 'member_id', class_name: 'User'

我寫的項目工廠為:

FactoryGirl.define do
  factory :project_member do
    association :project
    association :user
    role 'owner'
  end
end

但是它給了我:

>  undefined method `project=' for #<ProjectMember:0x00000006f66048>

如果我寫以下內容:

FactoryGirl.define do
  factory :project_member do
    association :member_project, foreign_key: 'gallery_id', class_name: 'Project'
    association :member, foreign_key: 'member_id', class_name: 'User'
    role 'owner'
  end
end

它說:

工廠未注冊:member_project

我不確定如何通過工廠對象定義多對多。

假設您有用於項目和用戶的工廠

factory :project_member do
    member_project FactoryGirl.build(:project)
    member FactoryGirl.build(:user)
    role 'owner'
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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