2013-02-21 14 views
11
साथ अपरिभाषित विधि after_create

मैं FactoryGirl में एक has_many संबंध after_create कॉलबैक का उपयोग कर, इसलिए जैसे /spec/factories/emails.rb में परिभाषित करने के लिए कोशिश कर रहा हूँ:FactoryGirl

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

लगाव एक अलग में परिभाषित किया गया है कारखाने /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 

का उपयोग करना: मेरी ऐनक में लगाव बिल्कुल ठीक काम करता है, इसलिए मैं आश्वस्त हूं कि उस के लिए कारखाना समस्या नहीं है, लेकिन जब मैं कोशिश करते हैं और एक बनाने : कारखाने से ईमेल मुझे निम्नलिखित अपवाद फेंक दिया गया:

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

मुझे क्या करना है, इस बारे में कुछ नुकसान हो रहा है, ऐसा लगता है कि कोई भी एक ही त्रुटि प्राप्त नहीं कर रहा है।

उत्तर

29

फैक्टरीगर्ल recently changed कॉलबैक के लिए वाक्यविन्यास। मुझे लगता है कि निम्नलिखित काम करेंगे:

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

एक आकर्षण काम किया! धन्यवाद दोस्त। – SirRawlins

संबंधित मुद्दे