Spec-Zone.ru › Ruby on Rails 4.2

модуль AbstractController::Callbacks::ClassMethods

Публичные методы экземпляров

_insert_callbacks(callbacks, block = nil) { |callback, options| ... } Показать исходный код
# 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 - Хеш параметров, которые будут использоваться при добавлении обратного вызова

_normalize_callback_options(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 - Обратный вызов должен выполняться для всех действий, кроме этого действия

after_action(names, block) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 115
      

Добавление обратного вызова после действий. См. #_insert_callbacks для подробностей параметров.

append_after_action(names, block) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 136
      

Добавление обратного вызова после действий. См. #_insert_callbacks для подробностей параметров.

append_around_action(names, block) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 164
      

Добавление обратного вызова вокруг действий. См. #_insert_callbacks для подробностей параметров.

append_before_action(names, block) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 108
      

Добавление обратного вызова перед действиями. См. #_insert_callbacks для подробностей параметров.

around_action(names, block) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 143
      

Добавление обратного вызова вокруг действий. См. #_insert_callbacks для подробностей параметров.

before_action(names, block) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 87
      

Добавление обратного вызова перед действиями. См. #_insert_callbacks для подробностей параметров.

prepend_after_action(names, block) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 122
      

Вставка обратного вызова после действий. См. #_insert_callbacks для подробностей параметров.

prepend_around_action(names, block) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 150
      

Добавить обработчик перед действиями. Смотрите #_insert_callbacks для подробностей о параметрах.

prepend_before_action(names, block) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 94
      

Добавить обработчик перед действием. Смотрите #_insert_callbacks для подробностей о параметрах.

skip_action_callback(*names) Показать исходный код
# 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.

Также алиасом является: skip_filter
skip_after_action(names) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 129
      

Пропустить обработчик после действий. Смотрите #_insert_callbacks для подробностей о параметрах.

skip_around_action(names) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 157
      

Пропустить обработчик вокруг действий. Смотрите #_insert_callbacks для подробностей о параметрах.

skip_before_action(names) Показать исходный код
# File actionpack/lib/abstract_controller/callbacks.rb, line 101
      

Пропустить обработчик перед действиями. Смотрите #_insert_callbacks для подробностей о параметрах.

skip_filter(*names)
Псевдоним для: skip_action_callback

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API