我阅读了Thoughtbot的这篇文章,但我仍感到困惑。
以下是他们的示例:
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(:user, upcased: true).name
#=> "JOHN DOE - ROCKSTAR"
所以,
.upcased
是模型上的真实属性吗?transient
块实际上是在做什么?设置变量然后可以在工厂中使用吗?evaluator
是什么?它是否总是需要最后传递?如果您的create
函数使用 traits、transients 并具有多个值怎么办?