ฉันต้องอ่านเอกสารที่http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.htmlแต่ไม่เข้าใจเมื่อaround_*
เรียกกลับจะมีการหารือเกี่ยวกับการและbefore_*
after_*
ความช่วยเหลือใด ๆ ที่ชื่นชมมาก
ขอบคุณ.
ฉันต้องอ่านเอกสารที่http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.htmlแต่ไม่เข้าใจเมื่อaround_*
เรียกกลับจะมีการหารือเกี่ยวกับการและbefore_*
after_*
ความช่วยเหลือใด ๆ ที่ชื่นชมมาก
ขอบคุณ.
คำตอบ:
around_*
การเรียกกลับจะถูกเรียกใช้ก่อนการดำเนินการจากนั้นเมื่อคุณต้องการเรียกใช้การดำเนินการเองคุณyield
จะเรียกใช้จากนั้นดำเนินการต่อ นั่นเป็นเหตุผลที่เรียกว่าaround
before
การสั่งซื้อไปเช่นนี้ around
, after
,
ดังนั้นโดยทั่วไปaround_save
จะมีลักษณะดังนี้:
def around_save
#do something...
yield #saves
#do something else...
end
การเรียกกลับ around_ * เรียกรอบ ๆ การดำเนินการและภายในการดำเนินการ before_ * และ after_ * ตัวอย่างเช่น:
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