gpt4 book ai didi

ruby-on-rails - 创建记录后更改工厂的属性

转载 作者:行者123 更新时间:2023-12-01 09:59:07 25 4
gpt4 key购买 nike

使用 FactoryBot,我无法在我的规范中创建管理工厂,因为每个用户都在 before_create 中被分配了一个默认的用户角色。打回来。这意味着当回调发生时,我分配给工厂的任何角色都将更改为用户。

我真正想做的是这样的:

在我的规范里面

admin = FactoryBot.create(:user)
admin.role = 'admin'

第二行, admin.role = 'admin'什么都不做。有任何想法吗?

我也愿意接受更好的方法。

最佳答案

尝试使用 trait :

factory :user do
sequence(:username) { |n| "User ##{n}"}
role 'user'

trait :is_admin do
role 'admin'
end
end

用法:
FactoryBot.create(:user, :is_admin)

或者最终是 after(:create) :
factory :user do
sequence(:username) { |n| "user ##{n}"}
role 'user'
end

factory :user_admin, class: User do
after(:create) { |user| user.role = 'admin'; user.save } # don't know if the .save is necessary here
sequence(:username) { |n| "User Admin ##{n}"}
end

关于ruby-on-rails - 创建记录后更改工厂的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19276379/

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