J'ai lu la documentation sur http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html , mais je ne comprends pas quand le around_*
les rappels sont déclenchés par rapport à before_*
et after_*
.
Toute aide très appréciée.
Merci.
around_*
les rappels sont invoqués avant l'action, puis quand vous voulez invoquer l'action elle-même, vous yield
, puis continuez l'exécution. C'est pourquoi il s'appelle around
L'ordre se présente comme suit: before
, around
, after
.
Donc, un around_save
ressemblerait à ceci:
def around_save
#do something...
yield #saves
#do something else...
end
Le callback around_ * est appelé autour de l'action et à l'intérieur des actions before_ * et after_ *. Par exemple:
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