Rails: around_* callbacks Rails: around_* callbacks ruby-on-rails ruby-on-rails

Rails: around_* callbacks


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


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'  endendUser.save  before save  in around save  out around save  after_save=> true