2011-06-25 89 views
0

我在使用rackup運行機架應用時遇到問題。爲什麼我在使用「rackup」運行機架應用程序時遇到NameError?

這是我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

如果您執行'require'blogrite/server''而不是自動加載,它能正常工作嗎? – Dogbert

+0

_Update_:它的確如此。自動加載是否搞砸了? ¶@Dogbert它已經工作過。我不知道爲什麼現在不會。讓我檢查一下。 – josemota

+0

我還沒有使用'autoload'。有人可能會更好地回答它。 – Dogbert

回答

0

我發現出現此錯誤的原因。顯示的NameError從模塊中被觸發,無法正確識別路徑。

@Dogbert正確指出自動加載可能不起作用。根據Dave Barker在his post中的說法,autoloads必須包含當前路徑$:/$LOAD_PATH。我做到了,現在它可以工作。

resulting commit現在可用。感謝@Dogbert將自動加載問題放在第一位!

相關問題