FactoryBot:如何在skip_create工厂中使用瞬态在内部工厂中指定属性?

时间:2018-08-20 22:10:08

标签: ruby-on-rails rspec factory-bot transient

我有以下工厂,内部有_skip_create_,并且在创建时也调用了另一个工厂,在该工厂上我尝试指定特定的UUID。示例:

FactoryBot.define do
  factory :experiment do

    transient { order nil }

    env_array = %w[prod dev test]
    uuid { SecureRandom.uuid }
    name { 'some name' }

    skip_create
    initialize_with do
      env_array.each_with_index do |env, idx|
        FactoryBot.create(:environment, uuid: 'b5c096d5-479a-4693-ac14-9cea7dfd045c') if order.eql? 'first'
      end
    end
  end
end

问题是,我无法获得订单可采取行动。我得到:

ArgumentError:未注册特征:订单

在致电工厂时,如何获得订单的具体信息?

1 个答案:

答案 0 :(得分:1)

这是因为您错过了花括号{}

FactoryBot.define do
  factory :experiment do
    transient do
      order { nil }
    end
   ....
  end
end