当我使用“rackup”运行机架应用程序时,为什么会出现NameError?

时间:2011-06-25 15:36:00

标签: ruby rack rackup

我在使用rackup运行机架应用时遇到问题。

这是我的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>'
...

您可以在Github中查看整个项目。我不明白我得到NameError的原因。

1 个答案:

答案 0 :(得分:0)

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

@Dogbert正确指出autoload可能无法正常工作。根据Dave Barker在his post中的说法,自动加载的类必须包含$: / $LOAD_PATH中的当前路径。我这样做了,现在它起作用了。

resulting commit现已推出。感谢@Dogbert首先指出自动加载问题!