无法将Rack Middleware文件加载到Rails应用程序中

时间:2013-11-30 08:29:32

标签: ruby-on-rails ruby-on-rails-3 heroku rack

尝试让Heroku的WebSocket教程使用Rails应用程序,但中间件没有加载。

重现的步骤:

  • 创建了一个Rails 3.2.15 app。
  • 添加faye-websocket gem并运行bundle install
  • 在应用程序中创建app/middleware目录
  • 将以下内容复制到app/middleware/test_server.rb
require 'faye/websocket'

class TestServer
  KEEPALIVE_TIME = 15 # in seconds

  def initialize(app)
    @app     = app
    @clients = []
  end

  def call(env)
  end
end
  • 将以下内容添加到config/application.rb
  

config.middleware.use TestServer

  • 运行rails console

我看到以下错误:

  

config / application.rb:64:in'':未初始化的常量RackMiddleware :: Application :: TestServer(NameError)

如果我添加require 'test_server',我会看到以下错误:

  

config / application.rb:5:在`require':无法加载这样的文件 - test_server(LoadError)

我认为app/中的目录会自动添加到Rails 3中。我做错了什么?

1 个答案:

答案 0 :(得分:1)

看起来问题是TestServer必须引用config.middleware.use调用。

这里的答案有所帮助:https://stackoverflow.com/a/16206347/3467

Heroku howto不正确,向他们发送评论以修复它。