答案 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)