модуль AbstractController::Callbacks::ClassMethods
Публичные методы экземпляров
# File actionpack/lib/abstract_controller/callbacks.rb, line 96
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 72 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 146
Добавляет обратный вызов после действий. См. _insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 167
Добавляет обратный вызов после действий. См. _insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 195
Добавляет обратный вызов вокруг действий. См. _insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 135
Добавляет обратный вызов перед действиями. См. _insert_callbacks для подробностей о параметрах.
Если обратный вызов отображает или перенаправляет, действие не будет выполнено. Если запланированы дополнительные обратные вызовы после этого, они также отменяются.
# File actionpack/lib/abstract_controller/callbacks.rb, line 174
Добавляет обратный вызов вокруг действий. См. _insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 106
Добавляет обратный вызов перед действиями. См. _insert_callbacks для подробностей о параметрах.
Если обратный вызов отображает или перенаправляет, действие не будет выполнено. Если запланированы дополнительные обратные вызовы после этого, они также отменяются.
# File actionpack/lib/abstract_controller/callbacks.rb, line 153
Вставляет обратный вызов после действий. См. _insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 181
Вставляет обратный вызов вокруг действий. См. _insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 117
Вставляет обратный вызов перед действиями. См. _insert_callbacks для подробностей о параметрах.
Если обратный вызов отображает или перенаправляет, действие не будет выполнено. Если запланированы дополнительные обратные вызовы после этого, они также отменяются.
# File actionpack/lib/abstract_controller/callbacks.rb, line 160
Пропускает обратный вызов после действий. См. _insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 188
Пропускает обратный вызов вокруг действий. См. _insert_callbacks для подробностей о параметрах.
# File actionpack/lib/abstract_controller/callbacks.rb, line 128
Пропускает обратный вызов перед действиями. См. _insert_callbacks для подробностей о параметрах.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.