রেলগুলি: চারপাশে_ * কলব্যাকস


98

আমি ডকুমেন্টেশন পড়া আছে http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html কিন্তু বুঝতে পারছি না যখন around_*callbacks সম্পর্কিত আলোড়ন সৃষ্টি হয় before_*এবং after_*।

যে কোনও সহায়তা অনেক প্রশংসিত।

ধন্যবাদ

উত্তর:


181

around_*কলব্যাকগুলি ক্রিয়াকলাপের আগে ডেকে আনা হয় , তারপরে আপনি যখন নিজেই ক্রিয়াকলাপটি চালাতে চান yield, তখন আপনি তার কাছে চলে যান, তারপরে মৃত্যুদন্ড কার্যকর করুন। এ কারণেই এটি বলা হয়around

অর্ডার ভালো যায়: before, around, after।

সুতরাং, একটি সাধারণ দেখতে around_saveহবে:

def around_save
   #do something...
   yield #saves
   #do something else...
end

4
এটি উপলব্ধি করে এবং অফিসিয়াল রেল গাইডগুলিতে নেই।
— ড্যান এস

123

ক্রিয়াটির চারপাশে__ কলব্যাকটিকে পূর্বের_ * এবং পরে_ * ক্রিয়াগুলির মধ্যে বলা হয় called উদাহরণ স্বরূপ:

class User
  def before_save
    puts 'before save'
  end

  def after_save
    puts 'after_save'
  end

  def around_save
    puts 'in around save'
    yield # User saved
    puts 'out around save'
  end
end

User.save
  before save
  in around save
  out around save
  after_save
=> true

14
আমার জন্য এটি সবচেয়ে আলোকিত উত্তর। ধন্যবাদ বন্ধু.
— অরূপ রক্ষিত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.