我有一个提供一些机架中间件的gem,我能让它工作的唯一方法是将它放在我的application.rb
config.middleware.use "TBBC::Editor::Middleware"
如何在我的gem在应用程序Gemfile中使用时自动使用此中间件?
答案 0 :(得分:12)
如果您打算将宝石与Rails 3一起使用,则可以提供Railtie
。然后,您可以在使用Rails的情况下自动加载它。
假设您的宝石名称为tbbc
,请将其放在lib/tbbc/railtie.rb
中:
module TBBC
class Railtie < Rails::Railtie
initializer "tbbc.insert_middleware" do |app|
app.config.middleware.use "TBBC::Editor::Middleware"
end
end
end
在lib/tbbc.rb
:
require "tbbc/railtie" if defined? Rails
您无法自动将中间件添加到通用Rack应用程序中。对于非Rails应用程序,这将是用户必须做的事情。