我正在开发一个也是Rails :: Engine的gem
我希望引擎将自定义中间件添加到主机应用程序中,并使用以下代码完成此操作
module MyModule class Engine < ::Rails::Engine isolate_namespace MyModule initializer "my_gem.middleware" do |app| app.config.app_middleware.use "MyModule::MyMiddleware" end end end
但是,这也会将中间件添加到Engine的routes.rb文件中定义的那些路由.我怎么能避免这个?我只希望将中间件添加到主机应用程序中.
例如,请考虑主机应用程序中定义的以下路由
Rails.application.routes.draw do mount MyModule::Engine => "/engine" root :to => Proc.new { |env| [200,{'Content-Type' => 'text/html'},["Hello World"]] } end
/ engine下的所有内容都不应该通过MyMiddleware
我可能会走错路来实现这个目标,也许我应该看看其他一些解决方案?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。