时间:2010-07-26 10:54:58

标签: ruby-on-rails rack

3 个答案:

答案 0 :(得分:9)

你应该使用Railtie。实际上,这是Rails::Railtie documentation中给出的例子。

class MyRailtie < Rails::Railtie
  initializer "my_railtie.configure_rails_initialization" do |app|
    app.middleware.use MyRailtie::Middleware
  end
end

答案 1 :(得分:7)

要在gem中插入中间件,您应该将其添加到gem的引擎中。

lib/gem_name/engine.rb

中的

require 'rails'

module GemName
  class Engine < Rails::Engine

    config.app_middleware.insert_before(Warden::Manager, Rack::OpenID)

  end
end

答案 2 :(得分:3)