আপনি কীভাবে বিশদটি ব্যাখ্যা করতে পারবেন যে :before_saveও :before_createরবি অন রেল কলব্যাকগুলি কী এবং তাদের কী কী আছে তার ব্যর্থতার সাথে বৈধতা যাচাই করার জন্য? বৈধতা পরে :before_saveবা ঘটে :before_create?
আপনি কীভাবে বিশদটি ব্যাখ্যা করতে পারবেন যে :before_saveও :before_createরবি অন রেল কলব্যাকগুলি কী এবং তাদের কী কী আছে তার ব্যর্থতার সাথে বৈধতা যাচাই করার জন্য? বৈধতা পরে :before_saveবা ঘটে :before_create?
উত্তর:
রেলের অধীনে একটি ক্রিয়েশন অপারেশনে, ডাটাবেস অপারেশনের আগে ছয়টি কলব্যাক এবং তার পরে দুটি রয়েছে। ক্রমানুসারে, এগুলি হ'ল:
before_validationbefore_validation_on_createafter_validationafter_validation_on_createbefore_savebefore_create
after_createafter_saveআপডেট ক্রিয়াকলাপগুলি ঠিক একই সেট রয়েছে, সর্বত্র updateপরিবর্তিত পড়ুন create(এবং INSERT এর পরিবর্তে আপডেট )।
এ থেকে, আপনি দেখতে পাচ্ছেন যে বৈধতা before_saveএবং before_createকলব্যাকের আগে সঞ্চালিত হয় ।
এর before_saveসামান্য আগে ঘটে before_create। আমার জ্ঞানের সর্বোত্তম, তাদের মধ্যে কিছুই ঘটে না; তবে before_saveআপডেট ক্রিয়াকলাপগুলিতেও before_createগুলি চালানো হবে , তবে কেবল ক্রিয়েটগুলিতেই আগুন লাগবে।
after_saveবা after_create?
after_saveবা after_createকলব্যাকে, selfরেকর্ডটি সবেমাত্র সংরক্ষিত ছিল, কারণ এটি সংরক্ষণের পরে উপস্থিত রয়েছে। অন্তর্ভুক্ত স্বতঃজেনারেট ক্ষেত্র চাই যে id, created_at, updated_at।
before_createএকটি নতুন অবজেক্টটি ডাটাবেসে সংরক্ষণ করা বোঝায়, প্রকৃত createপদ্ধতিটি বলা হচ্ছে না । সুতরাং, before_createএখনও saveপদ্ধতি থেকে বরখাস্ত করা যেতে পারে ।
before_saveতৃতীয় এবং before_create5 তম তালিকাভুক্ত করে ।
before_saveপ্রতিবার কোনও বস্তু সংরক্ষণ করা হয়। নতুন এবং বিদ্যমান বস্তুর জন্য তাই। (ক্রিয়া তৈরি এবং আপডেট করুন)
before_createশুধুমাত্র সৃষ্টির আগে। সুতরাং শুধুমাত্র নতুন বস্তুর জন্য (ক্রিয়া তৈরি করুন)
before_create বনাম before_save :on => :create
কখনও কখনও আপনাকে কলব্যাকের ক্রমটি সম্পর্কে সতর্ক থাকতে হবে
এখানে আরো বিস্তারিত জানার জন্য দেখুন:
http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/
before_save :on => :createকাজ করে না (কমপক্ষে
before_save :generate_api_key, :if => :new_record?
before_validation_on_createএবংafter_validation_on_createএর পরিবর্তে যথাক্রমে বিকল্পbefore_validationএবংafter_validationযথাযথভাবে ব্যবহার করুন এবং রেল 3 হিসাবে সরানো হবে:on => :create।