मैं मॉडल में सहेजे जाने के बाद निष्पादित रेल में कॉलबैक फ़ंक्शन बनाना चाहता हूं।मॉडल से विशेषता परिवर्तन का पता लगाने के लिए कैसे?
मैं इस मॉडल, दावा एक विशेषता 'स्थिति' जो दावे की स्थिति के आधार पर, संभावित मान लंबित हैं, का समर्थन किया, अनुमोदित बदल जाता है, को अस्वीकार कर दिया है
डेटाबेस डिफ़ॉल्ट के साथ 'राज्य' है 'लंबित' का मूल्य।
मैं मॉडल को पहली बार बनाया गया है या एक राज्य से दूसरे राज्य में अपडेट किए जाने के बाद कुछ कार्य करना चाहता हूं, इस पर निर्भर करता है कि यह किस राज्य से बदलता है।
after_save :check_state
def check_state
# if status changed from nil to pending (created)
do this
# if status changed from pending to approved
performthistask
end
मेरे सवाल यह है कि मैं मॉडल के भीतर परिवर्तन करने से पहले पिछले मूल्य के लिए जाँच करते है:
मेरा विचार मॉडल में एक समारोह के लिए है?
मॉडल सहेजे जाने के बाद यह काम नहीं करेगा, जिसे उसने पूछा था। –
@ टॉमरोसी, 'गंदे' कॉल 'after_save' (रेल 2.3 और 3.x दोनों में) में काम करता है। मैंने इसे कई बार इस्तेमाल किया है। –
@ टॉमरोसी, गंदे झंडे को प्रतिबद्ध करने के बाद रीसेट कर दिया जाता है, इसलिए वे रेल 3x में पेश किए गए 'after_commit' कॉलबैक में उपलब्ध नहीं होंगे। वे निश्चित रूप से 'after_save' में काम करेंगे। –