6

我有以下文件结构:

  • 执行.rb
    • 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

2 回答 2

7

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

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

require 'lib/my_class'

为了:

require_relative 'lib/my_class'
于 2013-06-11T15:21:29.803 回答
1

我遇到过同样的问题。您也可以使用 load 'lib/my_class.rb' require_relative 假定 .rb 后缀,因此您不必将其写出来。load 需要完整的文件名。

于 2016-08-17T19:20:22.150 回答