Rails: around_* callbacks

匿名 (未验证) 提交于 2019-12-03 02:13:02

问题:

I have read the documentation at http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html, but don't understand when the around_* callbacks are triggered in relation to before_* and after_*.

Any help much appreciated.

Thanks.

回答1:

around_* callbacks are invoked before the action, then when you want to invoke the action itself, you yield to it, then continue execution. That's why it's called around

The order goes like this: before, around, after.

So, a typical around_save would look like this:

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


回答2:

The around_* callback is called around the action and inside the before_* and after_* actions. For example:

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 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!