Spec-Zone.ru › Ruby on Rails 5.2

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

Открытые методы экземпляра

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Spec-Zone.ru

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