2011-08-27 5 views
7

में रिकॉर्ड/ऑब्जेक्ट गंदा है या नहीं, यह पहचानने के लिए कि क्या कोई ऑब्जेक्ट/रिकॉर्ड सहेजने से पहले गंदे है या रेल में कौन से फ़ील्ड बदले गए हैं?रेलिंग

उदाहरण

मान लीजिए मैं एक व्यक्ति मॉडल है और व्यक्ति एक संपत्ति नाम और उम्र कहा जाता है। डाटाबेस में, आईडी 1 के साथ व्यक्ति उम्र के साथ "जॉन" नाम दिया गया है 20.

p = Person.find 1 
p.name #John 
p.age #20 
अब

, जब मैं नाथन को जॉन से अपना नाम बदलने के लिए, वहाँ किसी भी तरह से मुझे पहचान करने के लिए है

  1. वस्तु बदल गया है (गंदा)
  2. और जो

बदल गया फ़ील्ड मैं पहली बार एक के लिए उत्तर जानते हैं। अगर मैं Nathna को अपना नाम बदलने के लिए, मैं निम्नलिखित

p.name = "Nathan" 
p.changed? #true 

कर सकते हैं हालांकि, वहाँ वैसे भी मुझे पहचान करने के लिए जो क्षेत्र बदल गया था है? एक ऐसी विधि हो सकती है जो बदले गए फ़ील्ड की एक सरणी लौटाती हो?

p.dirty_fields #[:name] 

उत्तर