Rails: around_* callbacks

后端 未结 2 1174
天命终不由人
天命终不由人 2020-11-29 20:24

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

相关标签:
2条回答
  • 2020-11-29 20:39

    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
    
    0 讨论(0)
  • 2020-11-29 20:44

    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
    
    0 讨论(0)
提交回复
热议问题