модуль AbstractController::Callbacks::ClassMethods
Открытые методы экземпляра
# File actionpack/lib/abstract_controller/callbacks.rb, line 90
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 44 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 134
Добавляет обратный вызов после действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 155
Добавляет обратный вызов после действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 183
Добавляет обратный вызов вокруг действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 127
Добавляет обратный вызов перед действием. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 162
Добавляет обратный вызов вокруг действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 106
Добавляет обратный вызов перед действием. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 141
Добавить обратный вызов после действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 169
Добавить обратный вызов вокруг действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 113
Добавить обратный вызов перед действиями. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 64
def skip_action_callback(*names)
ActiveSupport::Deprecation.warn('`skip_action_callback` is deprecated and will be removed in Rails 5.1. Please use skip_before_action, skip_after_action or skip_around_action instead.')
skip_before_action(*names, raise: false)
skip_after_action(*names, raise: false)
skip_around_action(*names, raise: false)
end Пропустить обратные вызовы действий, соответствующие любому из указанных имён.
Параметры
-
names- Список допустимых имён, которые могут быть использованы для обратных вызовов. Обратите внимание, что пропуск использует сравнение по значению в Ruby, поэтому невозможно пропустить обратный вызов, определённый с использованием анонимной процедуры, используя skip_action_callback.
# File actionpack/lib/abstract_controller/callbacks.rb, line 148
Пропустить обратный вызов после действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 176
Пропустить обратный вызов вокруг действий. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 120
Пропустить обратный вызов перед действиями. См. #_insert_callbacks для подробностей параметров.
# File actionpack/lib/abstract_controller/callbacks.rb, line 71
def skip_filter(*names)
ActiveSupport::Deprecation.warn("`skip_filter` is deprecated and will be removed in Rails 5.1. Use skip_before_action, skip_after_action or skip_around_action instead.")
skip_before_action(*names, raise: false)
skip_after_action(*names, raise: false)
skip_around_action(*names, raise: false)
end
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.