হয় 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_*