在工厂中,如何引用正在创建的对象中其他字段之一的值?
假设我的模型 Widget 有两个字段,nickname
并且fullname
在我的工厂内部,我想在每次创建工厂时使用 Faker 创建一个不同的随机昵称。(终于想通了我必须使用sequence(:nickname),否则所有工厂的名字都是一样的。)
为了使一些断言更容易测试,我想生成一个基于昵称的全名,比如fullname = "Full name for #{nickname}"
FactoryGirl.define do
factory :widget do
sequence(:nickname) { |n| Faker::Lorem.words(2).join(' ') }
sequence(:fullname) { |n| "Full name for " + ????? }
end
end
不管我放在哪里???去,我得到#<FactoryGirl::Decl...
的不是昵称。
我尝试了 name、name.to_s、name.value ......似乎没有任何效果。