модуль AbstractController::Callbacks::ClassMethods
Публичные методы экземпляра
Принимает имена обратных вызовов и необязательный блок обратного вызова, нормализует их, а затем вызывает блок с каждым обратным вызовом. Это позволяет абстрагировать нормализацию в нескольких методах, которые её используют.
Параметры
-
callbacks- Массив обратных вызовов, с необязательным хешем параметров в качестве последнего параметра. -
block- Блок кода, который должен быть добавлен к обратным вызовам.
Параметры блока
-
name- Обратный вызов, который нужно добавить -
options- Хеш опций, которые нужно использовать при добавлении обратного вызова
# File actionpack/lib/abstract_controller/callbacks.rb, line 73
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 Если используются :only или :except, преобразует опции в опции :unless и :if из ActiveSupport::Callbacks. Основная идея заключается в том, что :only => :index преобразуется в :if => proc {|c| c.action_name == “index” }.
Опции
-
only- Обратный вызов должен выполняться только для этого действия -
except- Обратный вызов должен выполняться для всех действий, кроме этого действия
# 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
Добавляет обратный вызов после действий. См. #_insert_callbacks для подробностей параметров. Также известен как after_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 122
Добавляет обратный вызов после действий. См. #_insert_callbacks для подробностей параметров. Также известен как append_after_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 146
Добавляет обратный вызов вокруг действий. См. #_insert_callbacks для подробностей параметров. Также известен как append_around_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 178
Добавляет обратный вызов перед действиями. См. #_insert_callbacks для подробностей параметров. Также известен как append_before_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 114
Добавляет обратный вызов вокруг действий. См. #_insert_callbacks для подробностей параметров. Также известен как around_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 154
Добавляет обратный вызов перед действиями. См. #_insert_callbacks для подробностей параметров. Также известен как before_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 90
Добавить обратный вызов после действий. См. #_insert_callbacks для подробностей параметров. Псевдоним: prepend_after_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 130
Добавить обратный вызов вокруг действий. См. #_insert_callbacks для подробностей параметров. Псевдоним: prepend_around_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 162
Добавить обратный вызов перед действиями. См. #_insert_callbacks для подробностей параметров. Псевдоним: prepend_before_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 98
Пропустить обратные вызовы действий, соответствующие любому из указанных имён. Псевдоним: skip_filter.
Параметры
-
names- Список допустимых имён, которые могут использоваться для обратных вызовов. Обратите внимание, что пропуск использует равенство Ruby, поэтому невозможно пропустить обратный вызов, определённый с помощью анонимной процедуры, используя skip_filter
# File actionpack/lib/abstract_controller/callbacks.rb, line 53 def skip_action_callback(*names) skip_before_action(*names) skip_after_action(*names) skip_around_action(*names) end
Пропустить обратный вызов после действий. См. #_insert_callbacks для подробностей параметров. Псевдоним: skip_after_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 138
Пропустить обратный вызов вокруг действий. См. #_insert_callbacks для подробностей параметров. Псевдоним: skip_around_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 170
Пропустить обратный вызов перед действиями. См. #_insert_callbacks для подробностей параметров. Псевдоним: skip_before_filter.
# File actionpack/lib/abstract_controller/callbacks.rb, line 106
© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.