我正在尝试通过 Factorygirl 回调创建一些额外的记录。它必须使用该工厂中的一个特征,并且必须向它传递一个动态变量。我以为我可以做这样的事情:
create_list(:some_factory, 5, :some_trait, dynamic_variable: 1)
但是我在 ActiveRecord 对象上得到了一个未定义的方法 `dynamic_variable='
最佳答案
您需要在工厂中定义 transient 。这是我从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
关于ruby-on-rails - 具有特征和动态变量的 Factory Girl create_list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078815/