2014-11-18 6 views
5

मैं आइटम की सूची बनाने के लिए फैक्टरीगर्ल उपयोगकर्ता को खोजने की कोशिश कर रहा हूं, लेकिन मुझे वस्तुओं को क्रम में रखने की आवश्यकता नहीं है। मेरे पास यही है, लेकिन मैं इसे ड्रियर करना चाहता हूं।फैक्टरीगर्ल विभिन्न मूल्यों के साथ create_list

spec.rb

context "three out of order" do 
    before do 
    FactoryGirl.create(:thing, ordering: 3) 
    FactoryGirl.create(:thing, ordering: 1) 
    FactoryGirl.create(:thing, ordering: 2) 
    end 

    it "should sort the things in order" do 
    expect(Thing.all.map(&:ordering)).to eq([1, 2, 3]) 
    end 
end 

मुझे पता है कि आप के साथ एक से अधिक आइटम बना सकते हैं:

FactoryGirl.create_list(:thing, ordering: 3) 

लेकिन मैं आइटम बनाने के लिए तो यह उनके आदेश का परीक्षण करना चाहता था, और वे सभी निर्माण करेंगे उनमें से क्रमशः मेरे कारखाने में अनुक्रम स्थापित है।

उत्तर

1

इसके बारे में क्या?

before do 
    (1..3).to_a.shuffle.each do |order| 
    FactoryGirl.create(:thing, ordering: order) 
    end 
end 
+2

यह समस्या को हल करने का एक क्लासिक मामला है, लेकिन सवाल का जवाब नहीं दे रहा है। जाहिर है कि यह किया जा सकता है, यह मूल उदाहरण की तरह है, लेकिन यहां लक्ष्य उपयोगकर्ता 'create_list' है और इसे आसान रखने के लिए है। सवाल यह नहीं था कि "मैं अलग-अलग नामों के साथ तीन मॉडल कैसे बना सकता हूं", बल्कि "क्या मैं अलग-अलग नामों के साथ तीन मॉडल बनाने के लिए create_list का उपयोग कर सकता हूं", दुर्भाग्य से संभव नहीं है। –

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