হয় after_createএবং after_saveপ্রতি কার্যকারিতা হিসাবে একই?
আমি কোনও অ্যাকাউন্ট তৈরির পরে কোনও ইমেলের ইমেল দিয়ে একটি অপারেশন করতে চাই।
ডাটাবেসে সেভ হয়ে গেলে আমি সেই অপারেশনটি করতে চাই।
কোনটি ব্যবহার করা ভাল: after_createবা after_save?
হয় after_createএবং after_saveপ্রতি কার্যকারিতা হিসাবে একই?
আমি কোনও অ্যাকাউন্ট তৈরির পরে কোনও ইমেলের ইমেল দিয়ে একটি অপারেশন করতে চাই।
ডাটাবেসে সেভ হয়ে গেলে আমি সেই অপারেশনটি করতে চাই।
কোনটি ব্যবহার করা ভাল: after_createবা after_save?
উত্তর:
after_create শুধুমাত্র একবারে কাজ করে - রেকর্ডটি প্রথম তৈরি হওয়ার ঠিক পরে।
after_save প্রতিবার আপনি বস্তুটি সংরক্ষণ করার সময় কাজ করে - এমনকি আপনি এটি বহু বছর পরে আপডেট করে দিলেও
সুতরাং আপনি যদি এই ইমেল অপারেশনটি করতে চান তবে কেবল একবার (এবং তারপরে আর কখনও হবে না) তবে ব্যবহার করুন after_create।
আপনি যদি প্রতিবার অবজেক্টটি সংরক্ষিত হয় তা করতে চান , তবে এটি ভিতরে করুনafter_save
ডক্স থেকে :
after_create()পরে বলা হয়
Base.saveনতুন যে বস্তু এখনো সংরক্ষিত হয়নি (কোন রেকর্ড থাকে) উপর।
after_save()এর পরে ডাকা হয়
Base.save(এটি সংরক্ষণ বা আপডেট আপডেট করা হোক না কেন)।
after_save()
আপনার যখন প্রায়শই প্রায়শই সংরক্ষণ না করে এমন মডেলগুলি সংরক্ষণ করতে হয় যখন সূক্ষ্মভাবে কাজ করে। রেকর্ড ঘন ঘন এই বিশেষ উদাহরণের জন্য এটি ব্যবহার করার পরামর্শ দেওয়া হবে
after_commit()
_অনুষ্ঠানের পরে ক্রিয়াকলাপ সম্পাদনের আগে মডেলটি ডাটাবেজে সংরক্ষণ করা হয়েছে তা নিশ্চিত করুন : গণনা_ক্রেডিট_স্কোর
def calculate_credit_score
#Call a Cron job
end
after_commitতবে কেন তা ব্যাখ্যা করবেন না। আপনি দয়া করে বিস্তারিত বলতে পারেন? নোট করুন যে after_commitতৈরি করুন, আপডেট করুন এবং ধ্বংস করুন runs দস্তাবেজ: apidock.com/rails/AtivetiveRecord/Transferences/ClassMethods/… সুতরাং after_saveরেকর্ডটি নষ্ট করার পরে আপনি যে ক্রোন_জবকে সত্যিই কল করতে চান সেই একই আচরণ নয় ? বা অপ্স ক্ষেত্রে, এখন মুছে ফেলা ব্যবহারকারীর জন্য একটি ইমেল প্রেরণ করবেন? ব্যবহার করে সতর্ক থাকুনafter_commit
after_commitসেই সিআরইউডি অপারেশনগুলিতে চলে, সুতরাং যদি তার ক্ষেত্রে ইমেলটি প্রায়শই আপডেট হয় তবে নির্দিষ্ট কলব্যাকের জন্য ক্রিয়াটি একত্রিত করা আরও সহজ হবে। আমার ক্ষেত্রে আমি ব্যবহার করেছিafter_commit : calculate_profile_update, on: :update
update_allকোনও কলব্যাকের ডাক দেয় না, সহafter_*