Подтвердить что ты не робот

Require не может найти файл .rb, который тот же каталог

Как именно работает команда require в Ruby? Я тестировал его со следующими двумя файлами, которые находятся в одном каталоге.

test.rb

require 'requirements'
square(2)

requirements.rb

def square(x)
    x*x
end

Но когда я запускаю ruby ​​test.rb, пока я в том же каталоге, что и файлы "test.rb" и "requirements.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>'

который, я думаю, означает, что он не может найти файл requirements.rb. Но это в том же каталоге, что и test.rb! Как это исправить?

Большое спасибо заранее. Приношу свои извинения за такие вопросы noob.

4b9b3361

Ответ 1

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'

Ответ 2

Я тоже только начал изучать, как работает рубин, поэтому я не совсем уверен, помогает ли это. Но попробуйте require_relative вместо требования, и я думаю, что это сработает.
Afaik требует поиска в рубиновой библиотеке.