Rails:around_ *callback
我已经阅读了http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html的文档,但不明白什么时候around_*
callback被触发相对于before_*
和after_*
。
任何帮助非常感谢。
谢谢。
around_*
callback在动作之前被调用,然后当你想调用动作本身时,你yield
它,然后继续执行。 这就是为什么它被称为
顺序是这样的: before
, around
, after
。
那么,一个典型的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