Sono terribilmente confuso riguardo a un giro_azione. Come funzionano? Qualcuno può fornirmi un esempio/spiegazione di come funzionano?Come funziona un callback around_action? Una spiegazione è necessaria
Questa è una citazione dal mio Agile Web Development 4 libro:
Intorno callback avvolgere l'esecuzione di azioni. È possibile scrivere un in base alla richiamata in due stili diversi. Nel primo, il callback è un singolo pezzo di codice. Questo codice viene chiamato prima che l'azione venga eseguita. Se il codice di richiamata richiama rendimento, l'azione viene eseguita. Al termine dell'azione, il codice di richiamata continua ad essere eseguito. Pertanto, il codice prima del rendimento è come un callback prima dell'azione e il codice dopo il rendimento è il callback dopo l'azione. Se il codice di richiamata non invoca mai il rendimento. l'azione non viene eseguita, equivale ad avere una prima azione callback return false.
Ho capito quando l'ho letto. Ecco un esempio delle guide di Rails
class ChangesController < ApplicationController
around_action :wrap_in_transaction, only: :show
private
def wrap_in_transaction
ActiveRecord::Base.transaction do
begin
yield
ensure
raise ActiveRecord::Rollback
end
end
end
end
Quindi cosa sta succedendo qui? ActiveRecord :: Base.transaction inizia come la parte "prima" e aumenta ActiveRecord :: Rollback come la parte "dopo"? A cosa sta andando questo metodo? È lo spettacolo? Infine, cosa causerebbe il fallimento del metodo yield causando il fallimento dell'intera callback? Sarebbe il rendering dell'azione spettacolo? Non capisco Aiuto per favore.