我想了解如何在ActiveRecord中实现Ar回调?我猜这可以通过Ruby钩子方法实现,但是,我不知道如何在ruby中实现它。任何指针或链接都将非常感激。
答案 0 :(得分:2)
看看AR source foir callbacks。基本上,它使用ActiveModel callbacks使用ActiveSupport callbacks。
涉及很多元编程,但它基本上做的是在运行正确的方法之前调用所有before_
回调(这就是super
的用途)。如果您希望能够像ActiveRecord一样轻松编写回调代码,请使用ActiveSupport。否则,您可以使用以下内容:
def method_with_callback
if !respond_to?(:before_callback) || before_callback
//method
after_callback if respond_to? :after_callback
end
end
但ActiveSupport方法更模块化,更易于维护。
答案 1 :(得分:1)
我建议您查看ActiveSupport::Callbacks
,您只需要这个就可以获得任何方法的回调。
http://api.rubyonrails.org/classes/ActiveSupport/Callbacks.html