Ruby 当我运行带有“的rack应用程序时,为什么会出现NameError?”;“货架”;?

Ruby 当我运行带有“的rack应用程序时,为什么会出现NameError?”;“货架”;?,ruby,rack,rackup,Ruby,Rack,Rackup,使用rackup运行rack应用程序时遇到问题 这是我的config.ru: $:.unshift "#{File.dirname(__FILE__)}/lib/" require 'blogrite' run Blogrite::Server.new(:with => :test) 调用rackup config.ru抛出: [~/Code/blogrite master] rackup config.ru /Users/josemota/Code/blogrite/lib/blo

使用
rackup
运行rack应用程序时遇到问题

这是我的config.ru:

$:.unshift "#{File.dirname(__FILE__)}/lib/"
require 'blogrite'

run Blogrite::Server.new(:with => :test)
调用
rackup config.ru
抛出:

[~/Code/blogrite master] rackup config.ru 
/Users/josemota/Code/blogrite/lib/blogrite/server.rb:2:in `<module:Blogrite>': uninitialized constant Blogrite::Server (NameError)
from /Users/josemota/Code/blogrite/lib/blogrite/server.rb:1:in `<top (required)>'
from /Users/josemota/Code/blogrite/config.ru:5:in `block in <main>'
...
[~/code/blogrite master]rackup config.ru
/Users/josemota/Code/blogrite/lib/blogrite/server.rb:2:in`':未初始化常量blogrite::server(NameError)
from/Users/josemota/Code/blogrite/lib/blogrite/server.rb:1:in`'
from/Users/josemota/Code/blogrite/config.ru:5:in'block in'
...

您可以签入完整的项目。我不明白我得到
名称错误的原因

我已经找到了出现此错误的原因。显示的NameError是从模块触发的,模块无法正确识别路径

@道伯特正确地指出,自动加载可能不起作用。根据中的Dave Barker,自动加载的类必须包含
$:
/
$LOAD\u path
中的当前路径。我做到了,现在它起作用了


现在可以使用。首先感谢@Dogbert指出自动加载问题

如果你做了一个
需要'blogrite/server'
而不是自动加载的操作,它可以正常工作吗?更新:它可以。自动加载是不是搞砸了?它以前是有效的。我不知道为什么现在不行。让我看看。我从来没有用过自动加载。有经验的人可能会回答得更好。谢谢@Dogbert,我会问合适的人。