2012-03-07 44 views
2

嗯哦安裝了Ruby 1.9.3打破了我的計劃

/Users/myname/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- classes/loginclass (LoadError) 
    from /Users/myname/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from programtest.rb:1:in `<main>' 

我做了什麼?這在幾分鐘前的1.8.7上運行良好;在1.8.7上運行的TextMate中仍能正常工作。我需要以某種方式更改我的文件夾嗎?

編輯

OK - 能得到它與此編輯工作:

require File.dirname(__FILE__) + '/classes/loginclass.rb' 

還是不明白,爲什麼我不得不改變這一點。我想我的負載路徑改變了?

回答

4

需要在文件末尾不寫.rb,還使用File.join代替斜槓:

require File.join(File.dirname(__FILE__), 'classes', 'loginclass') 
+0

這是1.8.3以上版本1.9.3中的新功能嗎? – krapdagn 2012-03-07 08:54:21

+0

Ruby 1.9比1.8更嚴格,這就是它發生的原因。 – Hauleth 2012-03-07 09:17:24

3

在紅寶石1.9.2+,最好使用require_relative這個(很常見)的使用情況。是的,這個問題也咬我了!