ruby-on-rails – 如何在Rails 4.2应用程序中添加中间件

我正在尝试学习中间件并一直在练习如何在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"

以上应该适合你.

点赞