Dentro de una fábrica, ¿cómo me refiero al valor de uno de los otros campos en el objeto que se está creando?en factorygirl, cualquier forma de referirse al valor de field1 al inicializar field2?
Supongamos que mi modelo Widget tiene dos campos, nickname
y fullname
Dentro de mi fábrica, quiero usar Faker crear un apodo aleatorio diferente cada vez que se crea una fábrica. (Finalmente descubrí que tengo que usar la secuencia (: apodo), de lo contrario, el nombre es el mismo para todas las fábricas.)
Para hacer algunas de las aserciones más fáciles de probar, quiero generar un nombre completo que sea sobre la base de apodo, algo así como 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
lo que pongo en el que el ??? va, obtengo #<FactoryGirl::Decl...
en lugar de cualquier apodo que haya configurado.
Intenté name, name.to_s, name.value ... nada parece funcionar.
Eso fue lo primero que he intentado en mi código de ejemplo en la cuestión, pero en lugar de # {campo1} dando el valor del campo, se produce algún objeto #
jpwynn
Bien, me lo perdí. Verifique mi respuesta actualizada. –
buen truco, voy a intentarlo gracias! – jpwynn