Zar*_*doz 3 rack ruby-on-rails
我试图找出Rails 3 gemfile中的gem如何自动将中间件添加到Rack堆栈.我正在寻找那个宝石的钩子.例如......当我将设计gem添加到我的Rails 3 gemfile中时,然后以某种方式设计warden作为Rack堆栈上的中间件.这似乎是自动的.Rails 3应用程序中无需进一步配置.我想从boot.rb自动调用一个特殊的类/方法.有什么提示这个过程真的有用吗?
你应该使用Railtie.实际上,这是Rails :: Railtie文档中给出的示例.
class MyRailtie < Rails::Railtie
initializer "my_railtie.configure_rails_initialization" do |app|
app.middleware.use MyRailtie::Middleware
end
end
Run Code Online (Sandbox Code Playgroud)
要在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4129 次 |
| 最近记录: |