2012-11-12 22 views
24

मैं इस समस्या निम्न गया एक विरासत उपयोगकर्ता मॉडल के साथ कारखानों को परिभाषित करने के । और अपने आप को दोहराने के साथ लिखते रहें।कैसे

FactoryGirl.define do 
    factory :user do 
    name "name" 
    bla "bla" 

    factory :custom_user do 
     customfield "customfield" 
    end 
    end 
end 

यह मेरे लिए काम नहीं करता है क्योंकि कक्षा भी "उपयोगकर्ता" है। "उपयोगकर्ता" के साथ मुझे एक अवैध त्रुटि मिली क्योंकि कस्टमफील्ड यहां डिफेंड नहीं हैं। क्या ऐसा कुछ अच्छा करने का कोई अच्छा अभ्यास, तरीका या तरीका है। अधिक जानकारी के लिए

factory :user do 
    name "name" 
    bla "bla" 
end 

factory :custom_user, class: CustomUser, parent: :user do 
    customfield "customfield" 
end 

:

उत्तर

44

आप इस कोशिश कर सकते हैं Inheritance

+1

हाँ यह माता-पिता के साथ काम किया है ... लेकिन मैं जोड़ने के लिए वर्ग की जरूरत है: CustomUser -> (कारखाना: custom_user, वर्ग: CustomUser, माता पिता: उपयोगकर्ता) – bulleric

+0

यही जवाब मैं करने के लिए के लिए देख रहा था है मेरी समस्या। इच्छा है कि मैं इसे कई बार उठा सकता हूं। –

11

बस कक्षा को जोड़ें: कस्टम यूज़र: custom_user फैक्ट्री। ये मेरे लिए सही है। जब आप इसमें घोंसला करते हैं: उपयोगकर्ता का मतलब है कि माता-पिता उपयोगकर्ता है, लेकिन यह आसान है।

FactoryGirl.define do 
    factory :user do 
    name "name" 
    bla "bla" 

    factory :custom_user, class: CustomUser do 
     customfield "customfield" 
    end 
    end 
end