我有以下文件结构:
在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>'
任何人都可以帮助我吗?我会感激任何帮助。 非常感谢。
答案 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需要整个文件名。