2013-02-21 20 views
11

Próbuję zdefiniowana relacja has_many w FactoryGirl pomocą after_create zwrotnego, tak jak w /spec/factories/emails.rb:Niezdefiniowany metoda after_create z FactoryGirl

FactoryGirl.define do 
    factory :email do 
     after_create do |email| 
      email.attachments << FactoryGirl.build(:attachment) 
     end 
    end 
end 

Załącznik zostanie zdefiniowany w osobnym fabryka /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 

Użycie: załącznik w moich specyfikacji działa całkowicie w porządku, więc jestem przekonany, że fabryka dla których nie jest problemem, jednak gdy próbuję i utworzyć : e-mail z fabryki otrzymuję następujący wyjątek:

Failure/Error: email = FactoryGirl.create(:email) 
    NoMethodError: 
     undefined method `after_create=' for #<Email:0x007ff0943eb8e0> 

Jestem trochę zagubiony co do tego, co robić, nie mogę znaleźć kogoś, kto dostałby ten sam błąd.

Odpowiedz

29

FactoryGirl recently changed Składnia wywołań zwrotnych. Myślę, że następujące czynności będą działać:

FactoryGirl.define do 
    factory :email do 
    after(:create) do |email| 
     email.attachments << FactoryGirl.build(:attachment) 
    end 
    end 
end 
+0

Zadziałał! Dzięki stary. – SirRawlins

Powiązane problemy