2012-02-07 9 views
5

मैंने टेस्ट डेटा को एक सामान्य स्क्रिप्ट के साथ अपने डेटाबेस को पॉप्युलेट करने का प्रयास करके पहला शॉट उत्पन्न किया जो सभी मॉडलों के लिए पर्याप्त संख्या में रिकॉर्ड बनाता है (esp। Polymorphism)।फैक्टरी गर्ल और random_data का उपयोग करके seed.rb के साथ डेटा को सही ढंग से यादृच्छिक कैसे करें?

FactoryGirl.define do 
    factory :question do 
    title  "What is the best place to travel in " + Random.country + "?" 
    body  Random.paragraphs(2) 
    association :user, :method => :build 
    end 
end 

Random वर्ग एक यादृच्छिक अवधि का उत्पादन करता है, उस शब्द के लिए एक ही रहता है:

यह मेरा seeds.rb

require 'factory_girl_rails' 

50.times do 

    @user = FactoryGirl.create(:user) 
    FactoryGirl.create(:contact, :user => @user) 

    @question = FactoryGirl.create(:question, :user => @user) 

    FactoryGirl.create(:user_answer, :question => @question, :authorable => @user) 

    @contact = FactoryGirl.create(:contact, :user => @user) 
    FactoryGirl.create(:contact_answer, :question => @question, :authorable => @contact) 

end 

एक उदाहरण के रूप में यहाँ question कारखाने IST है, सभी उदाहरण बनाए गए। इस मामले में मुझे 50 प्रश्न मिलेगा, कहें, "स्पेन में यात्रा करने के लिए सबसे अच्छी जगह क्या है?" और प्रत्येक के लिए पाठ के समान दो पैराग्राफ।

मुझे क्या याद आ रही है?

+0

'seeds.rb' केवल आवश्यक डेटाबेस के लिए 'स्थिर' डेटा जोड़ने के लिए इस्तेमाल किया जाना चाहिए , इसे 'स्थिर' करने के लिए नहीं। आधार डेटा बनाने के लिए ताकि आप विकास पर एप्लिकेशन को मैन्युअल रूप से जांच सकें, आपको रेक रेक बनाना चाहिए (हमारे पास 'रेक डीबी: पॉप्युलेट' है) – fuzzyalej

+0

इसे इंगित करने के लिए धन्यवाद। क्या आप व्यवहार को बदलने की उम्मीद करेंगे, हालांकि, अगर मैं इसे एक अलग कार्य में चलाने के लिए था? –

उत्तर

3

इसलिए मुझे यकीन नहीं है कि Random कक्षा यहां से आ रही है। लेकिन मैंने हमेशा इस सामान के लिए Faker gem का उपयोग किया।

यह है नाम, ईमेल, शहरों, फोन नंबर: इस तरह:

Faker::Name.name 
Faker::Address.uk_country 
Faker::Lorem.paragraph 

यह बाहर की जाँच

+0

एफवाईआई @ मैथ्यू: [यह वह जगह है जहां रैंडम क्लास आता है] (https://github.com/tomharris/random_data)। –