модуль AbstractController::Callbacks::ClassMethods
Общедоступные методы экземпляра
# File actionpack/lib/abstract_controller/callbacks.rb, line 120
def _insert_callbacks(callbacks, block = nil)
options = callbacks.extract_options!
callbacks.push(block) if block
options[:filters] = callbacks
_normalize_callback_options(options)
options.delete(:filters)
callbacks.each do |callback|
yield callback, options
end
end Принимает имена обратного вызова и необязательную процедуру обратного вызова, нормализует их, а затем вызывает блок с каждым обратным вызовом. Это позволяет абстрагировать нормализацию в нескольких методах, которые её используют.
Параметры
-
callbacks- Массив обратных вызовов с необязательным хэшем параметров в качестве последнего параметра. -
block- Процедура, которая должна быть добавлена к обратным вызовам.
Параметры блока
-
name- Обратный вызов, который нужно добавить. -
options- Хэш параметров, которые нужно использовать при добавлении обратного вызова.
# File actionpack/lib/abstract_controller/callbacks.rb, line 93 def _normalize_callback_options(options) _normalize_callback_option(options, :only, :if) _normalize_callback_option(options, :except, :unless) end
Если используются :only или :except, преобразует параметры в опции :if и :unless ActiveSupport::Callbacks.
Основная идея заключается в том, что :only => :index преобразуется в :if => proc {|c| c.action_name == "index" }.
Обратите внимание, что :only имеет приоритет над :if, если они используются вместе.
only: :index, if: -> { true } # the :if option will be ignored. Обратите внимание, что :if имеет приоритет над :except, если они используются вместе.
except: :index, if: -> { true } # the :except option will be ignored. Параметры
-
only- Обратный вызов должен выполняться только для этого действия. -
except- Обратный вызов должен выполняться для всех действий, кроме этого действия.
# File actionpack/lib/abstract_controller/callbacks.rb, line 173
Добавляет обратный вызов после выполнения действия. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 194
Добавляет обратный вызов после выполнения действия. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 223
Добавляет обратный вызов вокруг выполнения действия. Подробности о параметрах см. в _insert_callbacks. Устанавливает before_action, prepend_before_action, skip_before_action и т. д. для каждого из вариантов до, после и вокруг.
# File actionpack/lib/abstract_controller/callbacks.rb, line 162
Добавляет обратный вызов перед выполнением действия. Подробности о параметрах см. в _insert_callbacks.
Если обратный вызов рендерит или перенаправляет, действие не будет выполнено. Если запланированы дополнительные обратные вызовы, которые должны выполняться после этого обратного вызова, они также отменяются.
# File actionpack/lib/abstract_controller/callbacks.rb, line 201
Добавляет обратный вызов вокруг выполнения действия. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 132
Добавить обработчик перед действиями. См. _insert_callbacks для подробностей параметров.
Если обработчик отображает результат или перенаправляет, действие не будет выполнено. Если запланированы дополнительные обработчики для выполнения после этого обработчика, они также отменяются.
# File actionpack/lib/abstract_controller/callbacks.rb, line 180
Вставить обработчик после действий. См. _insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 208
Вставить обработчик вокруг действий. См. _insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 143
Вставить обработчик перед действиями. См. _insert_callbacks для подробностей параметров.
Если обработчик отображает результат или перенаправляет, действие не будет выполнено. Если запланированы дополнительные обработчики для выполнения после этого обработчика, они также отменяются.
# File actionpack/lib/abstract_controller/callbacks.rb, line 187
Пропустить обработчик после действий. См. _insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 216
Пропустить обработчик вокруг действий. См. _insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 155
Пропустить обработчик перед действиями. См. _insert_callbacks для подробностей параметров.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.