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

我真正想做的是这样的:

在我的规范里面

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

第二行 admin.role = 'admin' 不做任何事情。有任何想法吗?

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

最佳答案

只是另一种方式

# Steal some code from MrYoshiji at first.
factory :user do
  sequence(:username) { |n| "User ##{n}"}
  role 'user'

  # Then a separate factory inside
  factory :admin do
    role 'admin'
  end
end

# Use
FactoryBot.create(:admin)

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

10-16 08:27