Я ужасно смущен вокруг about_action. Как они работают? Может кто-нибудь, пожалуйста, предоставит мне пример/объяснение того, как они работают?
Это цитата из моей книги Agile Web Development 4:
Вокруг обратных вызовов завершается выполнение действий. Вы можете написать вокруг обратного вызова в двух разных стилях. В первом обратном вызове один кусок кода. Этот код вызывается до того, как действие будет выполнено. Если код обратного вызова вызывает выход, действие выполняется. Когда действие завершается, код обратного вызова продолжает выполняться. Таким образом, код перед выходом выглядит как обратный вызов до действия, а код после выхода - обратный вызов после действия. Если код обратного вызова никогда не вызывает доходность. действие не запускается - это то же самое, что иметь перед обратным вызовом перед возвратом false.
Я как бы понял это, когда прочитал. Вот пример из руководства 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
Итак, что здесь происходит? Действует ли ActiveRecord:: Base.transaction как часть "до" и поднимет ActiveRecord:: Rollback как часть "после"? Что это за метод? Это шоу? Наконец, что может привести к тому, что метод доходности завершится с ошибкой, что приведет к сбою всего обратного вызова? Будет ли это проявление действия шоу? Я не понимаю. Помогите пожалуйста.