- #
- A
- B
- P
- S
实例公共方法
_insert_callbacks(callbacks, block = nil) 链接
获取回调名称和一个可选的回调 proc,对它们进行规范化,然后对每个回调调用该块。这使我们能够抽象出使用它的几个方法中的规范化过程。
参数¶ ↑
-
callbacks- 一个回调数组,最后一个参数是一个可选的选项哈希。 -
block- 一个将被添加到回调中的 proc。
块参数¶ ↑
-
name- 要添加的回调。 -
options- 添加回调时使用的选项哈希。
源: 显示 | 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 120 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
_normalize_callback_options(options) 链接
如果使用了 :only 或 :except,则将选项转换为 ActiveSupport::Callbacks 的 :if 和 :unless 选项。
基本思路是 :only => :index 会被转换为 :if => proc {|c| c.action_name == "index" }。
注意,如果同时使用 :only 和 :if,:only 具有更高的优先级。
only: :index, if: -> { true } # the :if option will be ignored.
注意,如果同时使用 :if 和 :except,:if 具有更高的优先级。
except: :index, if: -> { true } # the :except option will be ignored.
选项¶ ↑
-
only- 回调应仅为此操作运行。 -
except- 回调应为所有操作运行,除了此操作。
源: 显示 | 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 93 def _normalize_callback_options(options) _normalize_callback_option(options, :only, :if) _normalize_callback_option(options, :except, :unless) end
after_action(names, block) 链接
在操作后追加一个回调。有关参数详情,请参阅 _insert_callbacks。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 173
append_after_action(names, block) 链接
在操作后追加一个回调。有关参数详情,请参阅 _insert_callbacks。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 194
append_around_action(names, block) 链接
在操作周围追加一个回调。有关参数详情,请参阅 _insert_callbacks。对于 before、after 和 around,都设置了 before_action、prepend_before_action、skip_before_action 等。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 223
append_before_action(names, block) 链接
在操作前追加一个回调。有关参数详情,请参阅 _insert_callbacks。
如果回调渲染或重定向,则操作不会运行。如果还有其他回调计划在该回调之后运行,它们也会被取消。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 162
around_action(names, block) 链接
在操作周围追加一个回调。有关参数详情,请参阅 _insert_callbacks。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 201
before_action(names, block) 链接
在操作前追加一个回调。有关参数详情,请参阅 _insert_callbacks。
如果回调渲染或重定向,则操作不会运行。如果还有其他回调计划在该回调之后运行,它们也会被取消。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 132
prepend_after_action(names, block) 链接
在操作后前置一个回调。有关参数详情,请参阅 _insert_callbacks。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 180
prepend_around_action(names, block) 链接
在操作周围前置一个回调。有关参数详情,请参阅 _insert_callbacks。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 208
prepend_before_action(names, block) 链接
在操作前前置一个回调。有关参数详情,请参阅 _insert_callbacks。
如果回调渲染或重定向,则操作不会运行。如果还有其他回调计划在该回调之后运行,它们也会被取消。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 143
skip_after_action(names) 链接
跳过操作后的回调。有关参数详情,请参阅 _insert_callbacks。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 187
skip_around_action(names) 链接
跳过操作周围的回调。有关参数详情,请参阅 _insert_callbacks。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 216
skip_before_action(names) 链接
跳过操作前的回调。有关参数详情,请参阅 _insert_callbacks。
源: 在 GitHub 上
# File actionpack/lib/abstract_controller/callbacks.rb, line 155