2011-11-27 16 views
10

मैं एक एपीआई के माध्यम से ऑब्जेक्ट बनाने की कोशिश कर रहा हूं, यानी कोई फॉर्म आवश्यक नहीं है, क्या मुझे MyModel.new(:name => params[:name]) या MyModel.create(:name => params[:name]) करना चाहिए?रेल पर रूबी, नई वस्तु बनाने, बनाने या नई विधि का उपयोग करें?

मान लें मैं routes में resources : my_models

मैं जाँच की है और मुझे लगता है कि तरीकों पैरामीटर ठीक हैश का उपयोग कर सकते हैं।

उत्तर

37

.new एक उदाहरण बनाता है (लेकिन आपको अभी भी .save की आवश्यकता होगी)।
जबकि
.create एक उदाहरण बनाता है और इसे एक ही समय में सहेजता है।

उम्मीद है कि आपके निर्णय में किस निर्णय का उपयोग करने में मदद मिलेगी।

+0

मैंने प्रारूप और स्पष्टता के लिए थोड़ा सा जवाब अपडेट किया। –

+0

धन्यवाद माइकल, उम्मीद है कि यह भविष्य में अधिक लोगों की मदद करेगा :) – jamiethepiper

4

यह इस बात पर निर्भर करता है कि आप क्या प्राप्त करना चाहते हैं। new विधि बस नई ऑब्जेक्ट को तुरंत चालू करता है और create विधि ऑब्जेक्ट बनाता है और सत्यापन पास होने पर इसे डेटाबेस में सहेजता है।

+0

@MichaelDurrant, हाँ। मुझे लगता है कि आप ActiveRecord के बारे में बात कर रहे हैं: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-create। – Mischa

+0

धन्यवाद मिशा +1 –