通过Railtie更多地控制中间件订购?

时间:2012-05-12 21:25:15

标签: ruby-on-rails ruby rack middleware

有些宝石/库可以从更好地控制注入中间件的位置中受益。

特别是如果异常处理中间件位于堆栈顶部会很好。

有没有办法做到这一点,或者只能通过编辑config.ru来完成?

2 个答案:

答案 0 :(得分:1)

不确定是否需要:http://api.rubyonrails.org/classes/Rails/Configuration/MiddlewareStackProxy.html

可以执行以下操作:

config.middleware.insert_before Rack::Head, Magical::Unicorns
config.middleware.insert_after Rack::Head, Magical::Unicorns
config.middleware.swap ActionDispatch::Flash, Magical::Unicorns
config.middleware.delete ActionDispatch::Flash

您可以定义您的Railtie并操纵中间件。

答案 1 :(得分:0)

除了手动订购中间件堆栈之外,目前没有内在的方法可以做到这一点。我见过一个hack,你可以在那里修补Rack :: Builder来为你提供一些推/弹功能。

https://github.com/joshbuddy/rack-capabilities