Rails:around_ *callback

我已经阅读了http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html的文档,但不明白什么时候around_*callback被触发相对于before_*after_*

任何帮助非常感谢。

谢谢。

around_*callback在动作之前被调用,然后当你想调用动作本身时,你yield它,然后继续执行。 这就是为什么它被称为

顺序是这样的: beforearoundafter

那么,一个典型的around_save将如下所示:

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

around_ *callback在动作周围以及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