跳到內容 跳到搜尋
方法
#
A
B
P
S

執行個體公開方法

_insert_callbacks(callbacks, block = nil)

接收回呼名稱以及可選擇的回呼程式,將它們標準化,然後呼叫區塊並將每個回呼帶入其中。這使我們得以在使用它的多個方法中抽象其標準化。

參數

  • callbacks - 回呼陣列,最後一個參數為可選擇的選項雜湊。

  • block - 應該新增到回呼的程式。

區塊參數

  • name - 要新增的回呼。

  • options - 新增回呼時要使用的選項雜湊。

# 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: :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 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

# File actionpack/lib/abstract_controller/callbacks.rb, line 173
      

append_after_action(names, block)

在動作後附加一個回呼。有關參數詳細資料,請參閱 _insert_callbacks

# File actionpack/lib/abstract_controller/callbacks.rb, line 194
      

append_around_action(names, block)

在動作周圍附加一個回呼。有關參數詳細資料,請參閱 _insert_callbacks。設定 before_actionprepend_before_actionskip_before_action 等等對應之前、之後或周圍的設定。

# File actionpack/lib/abstract_controller/callbacks.rb, line 223
      

append_before_action(names, block)

於動作前附加一個回呼。有關參數詳細資料,請參閱 _insert_callbacks

如果回呼會呈示或重新導向,則動作不會執行。如果在該回呼之後尚排程有其他回呼要執行,則也會取消。

# File actionpack/lib/abstract_controller/callbacks.rb, line 162
      

around_action(names, block)

在動作周圍附加一個回呼。有關參數詳細資料,請參閱 _insert_callbacks

# File actionpack/lib/abstract_controller/callbacks.rb, line 201
      

before_action(names, block)

於動作前附加一個回呼。有關參數詳細資料,請參閱 _insert_callbacks

如果回呼會呈示或重新導向,則動作不會執行。如果在該回呼之後尚排程有其他回呼要執行,則也會取消。

# File actionpack/lib/abstract_controller/callbacks.rb, line 132
      

prepend_after_action(names, block)

於動作後首推一個回呼。有關參數詳細資料,請參閱 _insert_callbacks

# File actionpack/lib/abstract_controller/callbacks.rb, line 180
      

prepend_around_action(names, block)

在動作周圍首推一個回呼。有關參數詳細資料,請參閱 _insert_callbacks

# File actionpack/lib/abstract_controller/callbacks.rb, line 208
      

prepend_before_action(names, block)

於動作前首推一個回呼。有關參數詳細資料,請參閱 _insert_callbacks

如果回呼會呈示或重新導向,則動作不會執行。如果在該回呼之後尚排程有其他回呼要執行,則也會取消。

# File actionpack/lib/abstract_controller/callbacks.rb, line 143
      

skip_after_action(names)

略過於動作後的回呼。有關參數詳細資料,請參閱 _insert_callbacks

# File actionpack/lib/abstract_controller/callbacks.rb, line 187
      

skip_around_action(names)

略過於動作周圍的回呼。有關參數詳細資料,請參閱 _insert_callbacks

# File actionpack/lib/abstract_controller/callbacks.rb, line 216
      

skip_before_action(names)

略過於動作前的回呼。有關參數詳細資料,請參閱 _insert_callbacks

# File actionpack/lib/abstract_controller/callbacks.rb, line 155