我正在尝试学习Middlewares
,并一直在练习如何将其安装在Rails应用程序中。我遵循了railscast
到目前为止,我已经实现了以下步骤:
1)创建了一个新的Rails 4.2
应用程序,名为:Blog
2)在lib
文件夹中添加了一个名为response_timer.rb
的文件。
class ResponseTimer
def initialize(app)
@app = app
end
def call(env)
[200, {"Content-Type" => "text/html"}, "Hello World"]
end
end
3)在
config.middleware.use "ResponseTimer"
中添加了application.rb
。config.middleware.use "ResponseTimer"
但是当我在终端中命中
rake middleware
命令时,它正在报告此错误:rake aborted!
NameError: uninitialized constant ResponseTimer
我也尝试在
config.middleware.use "ResponseTimer"
中添加development.rb
,但再次遇到相同的错误。我在这里想念什么?
请帮忙。
引用文章:http://guides.rubyonrails.org/rails_on_rack.html
最佳答案
中间件必须具有随附的模块/类,并且需要先在应用程序中加载中间件才能被引用。在Rails中执行此操作的方法是使用 autoloading
(默认情况下不会自动加载lib
文件):
#config/application.rb
config.autoload_paths += Dir["#{config.root}/lib/**/"]
config.middleware.use "ResponseTimer"
上面的应该为您工作。
关于ruby-on-rails - 如何在Rails 4.2应用程序中添加中间件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34870990/