简体   繁体   English

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

[英]Cannot load Rack Middleware file into Rails app

Trying to get Heroku's WebSocket tutorial working with a Rails app but the middleware is not loading. 试图让Heroku的WebSocket教程与Rails应用一起工作,但中间件未加载。

Steps to reproduce: 重现步骤:

  • Created a Rails 3.2.15 app. 创建了一个Rails 3.2.15应用程序。
  • Add faye-websocket gem and run bundle install 添加faye-websocket gem并运行bundle install
  • Create app/middleware directory in the application 在应用程序中创建app/middleware目录
  • Copy over the the following into app/middleware/test_server.rb 将以下内容复制到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 
  • Add the following to config/application.rb 将以下内容添加到config/application.rb

config.middleware.use TestServer config.middleware.use TestServer

  • Run rails console 运行rails console

I see the following error: 我看到以下错误:

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

If I add require 'test_server' , I see the following error: 如果添加require 'test_server'require 'test_server'看到以下错误:

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

I thought an directories in app/ were automatically added in Rails 3. What am I doing wrong? 我以为app/中的目录已自动添加到Rails 3中。我在做什么错?

Looks like the problem is that the TestServer has to be in quotes for config.middleware.use call. 看起来问题在于TestServer必须在config.middleware.use调用的引号中。

The answer here helped: https://stackoverflow.com/a/16206347/3467 答案在这里有所帮助: https : //stackoverflow.com/a/16206347/3467

The Heroku howto is incorrect, sent them an comment to fix it. Heroku howto错误,向他们发送了评论以对其进行修复。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Ruby on Rails:无法加载rack / handler / - Ruby on Rails: cannot load rack/handler/ 如何从gem中添加机架中间件到rails应用程序 - How to add rack middleware to rails app from gem 如何获取在Rails应用中运行的二手Rack中间件的对象 - How to get objects of used Rack middleware running in a Rails app Rails 服务器和 Rails 控制台崩溃:要求':无法加载此类文件 -- 机架/保护 (LoadError) - Rails server and Rails console crash with: require': cannot load such file -- rack/protection (LoadError) 不包括Ruby on Rails Rack中间件 - Ruby on Rails Rack middleware exclude 耙中止了! 无法加载此类文件-机架错误 - 'rake aborted! cannot load such file — rack' error 机架错误 - LoadError:无法加载此类文件 - Rack Error — LoadError: cannot load such file Docker编译失败并显示“ require”:无法加载此类文件-机架/处理器/导轨(LoadError) - Docker compose up fails with `require': cannot load such file — rack/handler/rails (LoadError) Rail“无法加载此类文件-机架/处理机/ rails__env =生产(LoadError)” - Rail “cannot load such file — rack/handler/rails__env=production (LoadError)” 运行“ rails服务器”时无法加载此类文件../xray-rails-0.1.17/lib/xray/middleware - cannot load such file ../xray-rails-0.1.17/lib/xray/middleware when running 'rails server'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM