在初始化之前交换 RAILS 个中间件
Swap RAILS middleware before initialized
假设这是应用程序完全启动后我的 RAILS 中间件堆栈:
> Rails.application.middleware
#<ActionDispatch::MiddlewareStack:0x007f9d1636e970
@middlewares=
[FooMiddleware,
...
...
...
SomeEngine::SomeMiddleware]>
在初始化过程完成并且中间件堆栈被冻结之前,我需要将 SomeEngine::SomeMiddleware
与 MyProxyMiddleware
交换。
您如何延迟插入或交换中间件,直到完成所有其他初始化(从应用程序和它包含的引擎)?
我找不到挂钩到中间件堆栈未冻结但所有 SomeEngine
已初始化的位置。
如果重要,请在 RAILS 4.2.
谢谢!
想通了:
# config/application.rb
module MyApplication
class Application < Rails::Application
# ...
initializer :foo do |app|
app.middleware.swap SomeEngine::SomeMiddleware, BarMiddleware
end
end
end
希望这对其他人有帮助。干杯。
假设这是应用程序完全启动后我的 RAILS 中间件堆栈:
> Rails.application.middleware
#<ActionDispatch::MiddlewareStack:0x007f9d1636e970
@middlewares=
[FooMiddleware,
...
...
...
SomeEngine::SomeMiddleware]>
在初始化过程完成并且中间件堆栈被冻结之前,我需要将 SomeEngine::SomeMiddleware
与 MyProxyMiddleware
交换。
您如何延迟插入或交换中间件,直到完成所有其他初始化(从应用程序和它包含的引擎)?
我找不到挂钩到中间件堆栈未冻结但所有 SomeEngine
已初始化的位置。
如果重要,请在 RAILS 4.2.
谢谢!
想通了:
# config/application.rb
module MyApplication
class Application < Rails::Application
# ...
initializer :foo do |app|
app.middleware.swap SomeEngine::SomeMiddleware, BarMiddleware
end
end
end
希望这对其他人有帮助。干杯。