модуль AbstractController::Callbacks::ClassMethods
Публичные методы экземпляров
# File actionpack/lib/abstract_controller/callbacks.rb, line 91
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 66 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 147
Добавление обратного вызова после действий. Подробности параметров см. в #_insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 168
Добавление обратного вызова после действий. Подробности параметров см. в #_insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 196
Добавление обратного вызова вокруг действий. Подробности параметров см. в #_insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 140
Добавление обратного вызова перед действиями. Подробности параметров см. в #_insert_callbacks.
Если обратный вызов рендерит или перенаправляет, действие не будет выполнено. Если запланированы дополнительные обратные вызовы, которые должны быть выполнены после этого обратного вызова, они также будут отменены.
# File actionpack/lib/abstract_controller/callbacks.rb, line 175
Добавление обратного вызова вокруг действий. Подробности параметров см. в #_insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 111
Добавление обратного вызова перед действиями. Подробности параметров см. в #_insert_callbacks.
Если обратный вызов рендерит или перенаправляет, действие не будет выполнено. Если запланированы дополнительные обратные вызовы, которые должны быть выполнены после этого обратного вызова, они также будут отменены.
# File actionpack/lib/abstract_controller/callbacks.rb, line 154
Вставка обратного вызова после действий. Подробности параметров см. в #_insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 182
Вставка обратного вызова вокруг действий. Подробности параметров см. в #_insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 122
Вставка обратного вызова перед действиями. Подробности параметров см. в #_insert_callbacks.
Если обратный вызов рендерит или перенаправляет, действие не будет выполнено. Если запланированы дополнительные обратные вызовы, которые должны быть выполнены после этого обратного вызова, они также будут отменены.
# File actionpack/lib/abstract_controller/callbacks.rb, line 161
Пропуск обратного вызова после действий. Подробности параметров см. в #_insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 189
Пропуск обратного вызова вокруг действий. Подробности параметров см. в #_insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 129
Пропуск обратного вызова перед действиями. Подробности параметров см. в #_insert_callbacks.
© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.