मेरी राय में, यदि आप save
कॉल को after_save
कॉलबैक में फ़ंक्शन करते हैं, तो यह तब तक एक रिकर्सन में फंस जाएगा जब तक आप शुरुआत में गार्ड नहीं डालते। इस
class User < AR::Base
after_save :change_url
def change_url
#Check some condition to skip saving
url = "www.johnseena.com"
save #<======= this save will fire the after_save again
end
end
हालांकि तरह, के अलावा एक गार्ड लगाने से, आप update_column
भी
def change_url
update_column(:url, "www.johnseena.com")
end
उपयोग कर सकते हैं इस मामले में यह after_save
आग नहीं होगा। हालांकि, यह after_update
आग लग जाएगा। तो अगर आप वापस तो है कि फोन पर किसी भी अद्यतन आपरेशन है कि आप फिर से प्रत्यावर्तन में हैं :)
क्या आप वास्तव में 'after_save' कॉलबैक में इंस्टेंस वैरिएबल '@ user' का उपयोग कर रहे हैं? – Samiron
आपको वास्तव में यह समझाने के लिए काम करना होगा कि आपको थोड़ा बेहतर क्या चाहिए और आपने जो कोशिश की है उसके कुछ और उदाहरण दें। – simonmorley