require无法找到同一目录的.rb文件

Use*_*159 10 ruby

Ruby中的require命令究竟是如何工作的?我使用以下两个位于同一目录中的文件对其进行了测试.

test.rb

require 'requirements'
square(2)
Run Code Online (Sandbox Code Playgroud)

requirements.rb

def square(x)
    x*x
end
Run Code Online (Sandbox Code Playgroud)

但是当我在文件"test.rb"和"requirements.rb"所在的目录中运行ruby test.rb时,我收到错误:

/usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- requirements (LoadError)
from /usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from test.rb:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我认为这意味着它无法找到requirements.rb文件.但它与test.rb在同一目录中!如何解决这个问题?

非常感谢提前.我为这样的菜鸟问题道歉.

Ser*_*sev 33

IIRC,ruby 1.9不包括LOAD_PATH的当前目录('.').您可以执行以下操作之一:

# specify relative path
require './test1'

# use relative method
require_relative 'test1'

# add current dir to LOAD_PATH 
$LOAD_PATH.unshift '.'
require 'test1'
Run Code Online (Sandbox Code Playgroud)