ruby-on-rails-3 - rails - factorybot create
Método indefinido after_create con FactoryGirl (1)
Estoy tratando de definir una relación has_many en FactoryGirl usando la devolución de llamada after_create, como en /spec/factories/emails.rb:
FactoryGirl.define do
factory :email do
after_create do |email|
email.attachments << FactoryGirl.build(:attachment)
end
end
end
El archivo adjunto se define en una fábrica separada / spec / factories / attachment.rb:
FactoryGirl.define do
factory :attachment do
# Attach the file to paperclip
file { fixture_file_upload(Rails.root.join(''spec'', ''support'', ''myimage.png''), ''image/png'') }
end
end
Usar el archivo adjunto en mis especificaciones funciona absolutamente bien, así que estoy seguro de que la fábrica no es el problema, sin embargo, cuando intento crear un correo electrónico de fábrica obtengo la siguiente excepción:
Failure/Error: email = FactoryGirl.create(:email)
NoMethodError:
undefined method `after_create='' for #<Email:0x007ff0943eb8e0>
Estoy un poco perdido en cuanto a qué hacer, no puedo encontrar a nadie más obteniendo el mismo error.
FactoryGirl cambió recientemente la sintaxis para las devoluciones de llamada. Creo que lo siguiente funcionará:
FactoryGirl.define do
factory :email do
after(:create) do |email|
email.attachments << FactoryGirl.build(:attachment)
end
end
end