2010-02-02 11 views
6

मैं केवल ActiveRecord में डाइविंग कर रहा हूं और मेरे प्रश्न का उत्तर नहीं ढूंढ पाया। यदि मैं किसी ऑब्जेक्ट के गुणों को अपडेट कर रहा हूं और फिर सेव() को कॉल कर रहा हूं ... क्या ActiveRecord केवल डीबी को सहेज लेगा जब नए मान पुराने मानों से अलग होते हैं?रेल में सरल ActiveRecord अद्यतनों को समझना

की मैं इस तरह कुछ करना मान लीजिए:

thing_to_update = Thing.find_or_create_by_code(some_code) 
if thing_to_update.name != some_name 
    thing_to_update.update_attribute(:name, some_name) 
end 

मैं अगर मैं क्योंकि मैं संभवतः वस्तुओं का एक बहुत अद्यतन करने के लिए करना होगा नहीं है डाटाबेस के लिए अतिरिक्त कॉल करने के लिए नहीं करना चाहती। मैंने दस्तावेज़ों के माध्यम से पढ़ने की कोशिश की और यह पुराने मूल्यों के साथ नए मूल्यों की तुलना करने के बारे में कुछ भी नहीं बताता है। क्या मुझसे कोई चूक हो रही है?

धन्यवाद

उत्तर

4

ActiveRecord होगा नहीं है यदि कोई विशेषता नहीं बदली है तो अपना रिकॉर्ड अपडेट करें। आप कंसोल से thing_to_update.save को कॉल करके और लॉग को देखकर इसे स्वयं सत्यापित कर सकते हैं। ActiveRecord रिकॉर्ड लोड करेगा, लेकिन यह इसे अपडेट करने का प्रयास नहीं करेगा।

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