2011-06-25 6 views
0

rackupを使用してラックアプリを実行する際に問題があります。「ラックアップ」のラックアプリケーションを実行すると、なぜNameErrorが発生しますか?

これは私のconfig.ruです:rackup config.ruを呼び出す

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

run Blogrite::Server.new(:with => :test) 

例外:

[~/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

autoloadではなく 'require 'blogrite/server''を実行するとうまく動作しますか? – Dogbert

+0

_Update_:そうです。オートロードが台無しになっていますか? ¶@Dogbertそれは以前働いていた。なぜそれが今ではないのか分からない。私はそれをチェックさせてください。 – josemota

+0

私はこれまでに 'autoload'を使っていません。持っている誰かがそれにもっとよく答えるかもしれません。 – Dogbert

答えて

0

このエラーが発生した原因がわかりました。示されたNameErrorがモジュールから起動され、パスを正しく認識しません。

@Dogbertは、自動ロードがおそらく機能していないと正しく指摘しました。 his postのDave Barkerによると、自動ロードするクラスには、現在のパスが$:/$LOAD_PATHに含まれている必要があります。私はそれをし、今それは動作します。

resulting commitが利用可能になりました。最初の場所でオートロードの問題を指摘してくれてありがとう@Dogbert!

関連する問題