我正在尝试学习中间件并一直在练习如何在Rails应用程序中安装它.我跟着
railscast
到目前为止,我已实现了以下步骤:
1)创建了一个名为:Blog的新Rails 4.2应用程序
2)在名为response_timer.rb的lib文件夹中添加了一个文件.
class ResponseTimer
def initialize(app)
@app = app
end
def call(env)
[200, {"Content-Type" => "text/html"}, "Hello World"]
end
end
3)在application.rb中添加了config.middleware.use“ResponseTimer”.
config.middleware.use "ResponseTimer"
但是当我在终端中命令rake中间件时,它报告了这个错误:
rake aborted!
NameError: uninitialized constant ResponseTimer
我还尝试在development.rb中添加config.middleware.use“ResponseTimer”,但又面临同样的错误.
我在这里失踪了什么?
请帮忙.
参考文章: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"
以上应该适合你.