Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通过Railtie对中间件订购进行更多控制?_Ruby On Rails_Ruby_Rack_Middleware - Fatal编程技术网

Ruby on rails 通过Railtie对中间件订购进行更多控制?

Ruby on rails 通过Railtie对中间件订购进行更多控制?,ruby-on-rails,ruby,rack,middleware,Ruby On Rails,Ruby,Rack,Middleware,有一些gem/库可以从更好地控制中间件的注入位置中获益 特别是,如果异常处理中间件位于堆栈的顶部,那就更好了 有什么方法可以做到这一点,或者只能通过编辑config.ru来完成吗?目前除了手动订购中间件堆栈之外,没有其他内在的方法可以做到这一点。我看到了一个黑客程序,您可以使用monkey patch Rack::Builder为您提供一些推送/弹出功能 除了手动订购中间件堆栈之外,目前没有其他内在的方法来完成这项工作。我看到了一个黑客程序,您可以使用monkey patch Rack::Bui

有一些gem/库可以从更好地控制中间件的注入位置中获益

特别是,如果异常处理中间件位于堆栈的顶部,那就更好了


有什么方法可以做到这一点,或者只能通过编辑config.ru来完成吗?

目前除了手动订购中间件堆栈之外,没有其他内在的方法可以做到这一点。我看到了一个黑客程序,您可以使用monkey patch Rack::Builder为您提供一些推送/弹出功能


除了手动订购中间件堆栈之外,目前没有其他内在的方法来完成这项工作。我看到了一个黑客程序,您可以使用monkey patch Rack::Builder为您提供一些推送/弹出功能


不确定这是否是您需要的:

可以执行以下操作:

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并操作周围的中间件即可。

不确定这是否是您需要的:

可以执行以下操作:

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并操作周围的中间件即可