Ho letto la documentazione su http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html , ma non capisco quando around_*
vengono attivati i callback in relazione a before_*
e after_*
.
Qualsiasi aiuto molto apprezzato.
Grazie.
Ho letto la documentazione su http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html , ma non capisco quando around_*
vengono attivati i callback in relazione a before_*
e after_*
.
Qualsiasi aiuto molto apprezzato.
Grazie.
Risposte:
around_*
i callback vengono richiamati prima dell'azione, quindi quando si desidera invocare l'azione stessa, si yield
fa clic su di essa, quindi si continua l'esecuzione. Ecco perché si chiamaaround
L'ordine è questa: before
, around
, after
.
Quindi, un tipico around_save
sarebbe simile a questo:
def around_save
#do something...
yield #saves
#do something else...
end
Il callback around_ * viene chiamato attorno all'azione e all'interno delle azioni before_ * e after_ *. Per esempio:
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