модуль AbstractController::Callbacks::ClassMethods
Открытые методы экземпляра
# File actionpack/lib/abstract_controller/callbacks.rb, line 122
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 Получает имена обратных вызовов и необязательный proc обратного вызова, нормализует их, а затем вызывает блок для каждого обратного вызова. Это позволяет абстрагировать нормализацию в нескольких методах, которые её используют.
Параметры
-
callbacks— массив обратных вызовов с необязательным хешем параметров в качестве последнего аргумента. -
block— proc, который следует добавить к обратным вызовам.
Параметры блока
-
name— обратный вызов, который следует добавить. -
options— хеш параметров, используемых при добавлении обратного вызова.
# File actionpack/lib/abstract_controller/callbacks.rb, line 95 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 175
Добавляет обратный вызов после действий. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 196
Добавляет обратный вызов после действий. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 225
Добавляет обратный вызов вокруг действий. Подробности о параметрах см. в _insert_callbacks. настройте before_action, prepend_before_action, skip_before_action и т. д. для обратных вызовов до, после и вокруг действия.
# File actionpack/lib/abstract_controller/callbacks.rb, line 164
Добавляет обратный вызов перед действиями. Подробности о параметрах см. в _insert_callbacks.
Если обратный вызов выполняет рендеринг или перенаправление, действие не будет выполнено. Если после этого обратного вызова запланированы другие обратные вызовы, они также отменяются.
# File actionpack/lib/abstract_controller/callbacks.rb, line 203
Добавляет обратный вызов вокруг действий. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 134
Добавляет обратный вызов перед действиями. Подробности о параметрах см. в _insert_callbacks.
Если обратный вызов выполняет рендеринг или перенаправление, действие не будет выполнено. Если после этого обратного вызова запланированы другие обратные вызовы, они также отменяются.
# File actionpack/lib/abstract_controller/callbacks.rb, line 182
Добавляет обратный вызов в начало списка обратных вызовов после действий. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 210
Добавляет обратный вызов в начало списка обратных вызовов вокруг действий. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 145
Добавляет обратный вызов в начало списка обратных вызовов перед действиями. Подробности о параметрах см. в _insert_callbacks.
Если обратный вызов выполняет рендеринг или перенаправление, действие не будет выполнено. Если после этого обратного вызова запланированы другие обратные вызовы, они также отменяются.
# File actionpack/lib/abstract_controller/callbacks.rb, line 189
Пропускает обратный вызов после действий. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 218
Пропускает обратный вызов вокруг действий. Подробности о параметрах см. в _insert_callbacks.
# File actionpack/lib/abstract_controller/callbacks.rb, line 157
Пропускает обратный вызов перед действиями. Подробности о параметрах см. в _insert_callbacks.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.