модуль AbstractController::Callbacks::ClassMethods
Публичные методы экземпляров
# File actionpack/lib/abstract_controller/callbacks.rb, line 71
def _insert_callbacks(callbacks, block = nil)
options = callbacks.extract_options!
_normalize_callback_options(options)
callbacks.push(block) if block
callbacks.each do |callback|
yield callback, options
end
end Принимает имена обратного вызова и необязательный блок обратного вызова, нормализует их, а затем вызывает блок для каждого обратного вызова. Это позволяет нам абстрагировать нормализацию в нескольких методах, которые ее используют.
Параметры
-
callbacks- Массив обратных вызовов, с необязательным хешем параметров в качестве последнего параметра. -
block- Блок, который необходимо добавить к обратным вызовам.
Параметры блока
-
name- Обратный вызов, который будет добавлен -
options- Хеш параметров, которые будут использоваться при добавлении обратного вызова
# File actionpack/lib/abstract_controller/callbacks.rb, line 33 def _normalize_callback_options(options) _normalize_callback_option(options, :only, :if) _normalize_callback_option(options, :except, :unless) end
Если используются :only или :except, преобразуйте параметры в параметры :unless и :if из ActiveSupport::Callbacks. Основная идея заключается в том, что :only => :index преобразуется в :if => proc {|c| c.action_name == “index” }.
Параметры
-
only- Обратный вызов должен быть выполнен только для этого действия -
except- Обратный вызов должен выполняться для всех действий, кроме этого действия
# File actionpack/lib/abstract_controller/callbacks.rb, line 115
Добавление обратного вызова после действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 136
Добавление обратного вызова после действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 164
Добавление обратного вызова вокруг действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 108
Добавление обратного вызова перед действиями. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 143
Добавление обратного вызова вокруг действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 87
Добавление обратного вызова перед действиями. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 122
Вставка обратного вызова после действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 150
Добавить обработчик перед действиями. Смотрите #_insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 94
Добавить обработчик перед действием. Смотрите #_insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 52 def skip_action_callback(*names) skip_before_action(*names) skip_after_action(*names) skip_around_action(*names) end
Пропустить обработчики действий, соответствующие любому из указанных имён.
Параметры
-
names- Список допустимых имён обработчиков. Обратите внимание, что при пропуске используется сравнение Ruby, поэтому невозможно пропустить обработчик, определенный с помощью анонимного proc с помощью skip_action_callback.
# File actionpack/lib/abstract_controller/callbacks.rb, line 129
Пропустить обработчик после действий. Смотрите #_insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 157
Пропустить обработчик вокруг действий. Смотрите #_insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 101
Пропустить обработчик перед действиями. Смотрите #_insert_callbacks для подробностей о параметрах.
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.