2013-06-04 30 views
6

我有文件的結構如下:如何解決這個錯誤:kernel_require.rb:45:在'require'中:無法加載這樣的文件?

  • execute.rb
  • LIB
    • my_class.rb

在execute.rb我的代碼波紋管:

#!/usr/bin/ruby 

require 'lib/my_class' 

my_object= MyClass.new 

my_object.some_method 

這是my_class.rb的代碼:

class MyClass 
    def some_method 
     puts 'OK' 
    end 
end 

於是,我試着運行execute.rb:

ruby execute.rb 

但我收到此錯誤:

/home/vagrant/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- lib/my_class (LoadError) 
    from /home/vagrant/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
    from execute.rb:3:in `<main>' 

燦任何人都幫助我?我會感謝任何幫助。 非常感謝。

+4

使用'require_relative'而不是'require'。這在Ruby 1.9中進行了更改。 – Dogbert

+0

@Dogbert謝謝,這個修復工作適合我。 – monteirobrena

+0

Ruby 2.1.7爲我工作 –

回答

7

我按照@Dogbert的提示修復了這個問題。

在execute.rb代碼,有必要更換:

require 'lib/my_class' 

爲:

require_relative 'lib/my_class' 
1

我有同樣的問題。你也可以使用load'lib/my_class.rb' require_relative假定.rb後綴,所以你不必把它寫出來。加載需要整個文件名。

相關問題