让我们说这是应用程序完全启动后我的RAILS中间件堆栈:
> Rails.application.middleware
#<ActionDispatch::MiddlewareStack:0x007f9d1636e970
@middlewares=
[FooMiddleware,
...
...
...
SomeEngine::SomeMiddleware]>
在初始化过程完成并且中间件堆栈冻结之前,我需要将SomeEngine::SomeMiddleware
与MyProxyMiddleware
交换。
如果从应用程序和它包含的引擎完成所有其他初始化之后,如何延迟插入或交换中间件?
我找不到可以解冻中间件堆栈解冻但所有SomeEngine
已初始化的地方。
如果重要,请参阅RAILS 4.2。
谢谢!
答案 0 :(得分:1)
想出来:
# config/application.rb
module MyApplication
class Application < Rails::Application
# ...
initializer :foo do |app|
app.middleware.swap SomeEngine::SomeMiddleware, BarMiddleware
end
end
end
希望这有助于其他人。欢呼声。