tutorial rails girl factorybot example create bot ruby-on-rails-3 rspec factory-bot

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