跳至內容 跳至搜尋

MiddlewareStackProxy 是 Rails 中介軟體堆疊的代理,讓你可以在應用程式中設定中介軟體。它的運作原理基本上像是個指令記錄器,會儲存每個指令,以便在初始化後套用至預設中介軟體堆疊,讓你可以在 Rails 中新增、交換或移除任何中介軟體。

你可以使用 config.middleware.use 方法來新增自己的中介軟體

config.middleware.use Magical::Unicorns

這樣會將 Magical::Unicorns 中介軟體置於堆疊的結尾。如果你想在另一個中介軟體之前新增中介軟體,可以使用 insert_before

config.middleware.insert_before Rack::Head, Magical::Unicorns

也有 insert_after,可以用來在另一個中介軟體之後插入中介軟體

config.middleware.insert_after Rack::Head, Magical::Unicorns

中介軟體還可以完全交換和替換成其他中介軟體

config.middleware.swap ActionDispatch::Flash, Magical::Unicorns

可以將中介軟體從一個位置移到另一個位置

config.middleware.move_before ActionDispatch::Flash, Magical::Unicorns

這樣會將 Magical::Unicorns 中介軟體移到 ActionDispatch::Flash 之前。也可以移動到之後

config.middleware.move_after ActionDispatch::Flash, Magical::Unicorns

最後,也可以將它們從堆疊中完全移除

config.middleware.delete ActionDispatch::Flash
方法
D
I
M
N
S
U

屬性

[R] 刪除操作
[R] 操作

類別公開方法

new(operations = [], delete_operations = [])

# File railties/lib/rails/configuration.rb, line 47
def initialize(operations = [], delete_operations = [])
  @operations = operations
  @delete_operations = delete_operations
end

執行個體公開方法

delete(...)

# File railties/lib/rails/configuration.rb, line 70
def delete(...)
  @delete_operations << -> middleware { middleware.delete(...) }
end

insert(...)

別名為:insert_before

insert_after(...)

# File railties/lib/rails/configuration.rb, line 58
def insert_after(...)
  @operations << -> middleware { middleware.insert_after(...) }
end

insert_before(...)

別名:insert
# File railties/lib/rails/configuration.rb, line 52
def insert_before(...)
  @operations << -> middleware { middleware.insert_before(...) }
end

move(...)

別名為:move_before

move_after(...)

# File railties/lib/rails/configuration.rb, line 80
def move_after(...)
  @delete_operations << -> middleware { middleware.move_after(...) }
end

move_before(...)

別名又稱: move
# File railties/lib/rails/configuration.rb, line 74
def move_before(...)
  @delete_operations << -> middleware { middleware.move_before(...) }
end

swap(...)

# File railties/lib/rails/configuration.rb, line 62
def swap(...)
  @operations << -> middleware { middleware.swap(...) }
end

unshift(...)

# File railties/lib/rails/configuration.rb, line 84
def unshift(...)
  @operations << -> middleware { middleware.unshift(...) }
end

use(...)

# File railties/lib/rails/configuration.rb, line 66
def use(...)
  @operations << -> middleware { middleware.use(...) }
end