Jes*_*iah 4 ruby rack ruby-on-rails rack-middleware ruby-on-rails-3
我正在研究一个事件处理程序来报告远程api的异常(类似于newrelic代理),我找不到将我的中间件添加到机架而不在environment.rb文件中执行的方法.
我不想在environment.rb文件中这样做,因为我打算把它变成一个gem,我想最小化安装过程.
这是我想要添加到我的应用程序中的简单中间件:
#/lib/response_timer.rb
class ResponseTimer
  def initialize(app)
    @app = app
  end
  def call(env)
    #do something here
    @app.call(env)
  end
end
我可以找到包含它的唯一方法是将其添加到我的环境cofig:
config.middleware.use "ResponseTimer"
我已经使用rails工作了一年多,但这是我第一次使用机架和中间件.
任何建议表示赞赏!
jan*_*oeh 11
Gems可以通过提供Railtie来配置他们的主机应用程序.
例如,以下是BetterErrors gem如何做到的缩短版本:
module BetterErrors
  class Railtie < Rails::Railtie
    initializer "better_errors.configure_rails_initialization" do
      Rails.application.middleware.use BetterErrors::Middleware
    end
  end
end
| 归档时间: | 
 | 
| 查看次数: | 1894 次 | 
| 最近记录: |