如何解决这个错误:kernel_require.rb:45:在`require':无法加载这样的文件?

时间:2013-06-04 17:54:18

标签: ruby ruby-2.0

我有以下文件结构:

  • 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>'

任何人都可以帮助我吗?我会感激任何帮助。 非常感谢。

2 个答案:

答案 0 :(得分:7)

我按照@Dogbert的提示解决了这个问题。

在execute.rb代码中,必须替换:

require 'lib/my_class'

有:

require_relative 'lib/my_class'

答案 1 :(得分:1)

我有同样的问题。你也可以使用load'lib / my_class.rb' require_relative采用.rb后缀,因此,您不必将其写出来。 load需要整个文件名。