2012-03-07 47 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这个(很常见)的使用情况。是的,这个问题也咬我了!