我在使用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
的原因。
答案 0 :(得分:0)
我找到了出现此错误的原因。显示的NameError是从模块触发的,模块无法正确识别路径。
@Dogbert正确指出autoload可能无法正常工作。根据Dave Barker在his post中的说法,自动加载的类必须包含$:
/ $LOAD_PATH
中的当前路径。我这样做了,现在它起作用了。
resulting commit现已推出。感谢@Dogbert首先指出自动加载问题!