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


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.