我试图从Factorygirl回调中创建一些额外的记录。它必须使用该工厂中的一个特征,并且必须将动态变量传递给它。我以为我可以这样做:
create_list(:some_factory, 5, :some_trait, dynamic_variable: 1)
但我得到一个未定义的方法`dynamic_variable ='在ActiveRecord对象上
答案 0 :(得分:4)
您需要在工厂中定义瞬态。这是一个例子,我是从wiki复制的
factory :user do
transient do
rockstar true
upcased false
end
name { "John Doe#{" - Rockstar" if rockstar}" }
email { "#{name.downcase}@example.com" }
after(:create) do |user, evaluator|
user.name.upcase! if evaluator.upcased
end
end
create_list(:user, 10, upcased: true).name