gpt4 book ai didi

ruby-on-rails - FactoryGirl 自引用关联错误

转载 作者:行者123 更新时间:2023-12-04 07:31:04 24 4
gpt4 key购买 nike

我正在尝试与工厂女孩建立 has_many:has_many 关系。

这是我的模型:

class User < ActiveRecord::Base
has_many :user_roles
has_many :roles, through: :user_roles
end

class UserRole < ActiveRecord::Base
belongs_to :user
belongs_to :role
end

class Role < ActiveRecord::Base
has_many :user_roles
has_many :users, through: :user_roles
end

这是我的用户的工厂:
FactoryGirl.define do
factory :user do
user_name { Faker::Name.user_name }

trait :admin do
association :user, factory: :admin, strategy: :create
end
end
end

这是管理员角色的工厂:
FactoryGirl.define do
factory :admin, class: Role do
name 'admin'
end
end

这个问题的关键是:
trait :admin do
association :user, factory: :admin, strategy: :create
end

我是这样触发的:

FactoryGirl.create :user, :admin



但这给了我:
FactoryGirl::AssociationDefinitionError: Self-referencing association 'user' in 'admin'

为什么是这样?和 我应该如何让这个用户成为管理员?我应该创建一个 user_role工厂和创造?

最佳答案

它可能不喜欢您同时拥有一个名为 :admin 的用户特征。和一家名为 admin 的工厂对于不同的类。

尝试将您的角色工厂重命名为 :admin_role看看它是否仍然是问题

关于ruby-on-rails - FactoryGirl 自引用关联错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25684825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com