Почему я не могу заставить мои рубиновые запросы работать должным образом?

Возможный дубликат:
Почему Ruby 1.9.2 удаляет "." Из LOAD_PATH, и какова альтернатива?
Команда Require не работает в bash irb на Snow Leopard
Рубин require вызов не выполняется по пользовательскому коду

Я бегу:

  • OS X 10.6.8
  • RVM 1.12.3 с Ruby 1.9.3

Допустим, у меня есть следующие файлы в каталоге:

a.rb

require 'b'
puts message_from_b

b.rb

def message_from_b
    "foo"
end

Я получаю следующее LoadError при запуске a.rb:

/Users/Alex/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require ': не удается загрузить такой файл - b (LoadError)

Однако, если я заменю строку 1 файла a.rb на require './b' работает нормально.

При взгляде на код Ruby других людей кажется, что им не нужно указывать текущий каталог, чтобы он требовал файл в том же каталоге.

Итак, почему я должен это делать? Это как-то связано с моей установкой RVM?

1 ответ

Файл b.rb не в вашем пути загрузки. Либо добавить b.rbкаталог к ​​вашему пути загрузки

$LOAD_PATH.unshift(File.dirname(__FILE__)) # assuming it's the current directory

или использовать

require_relative 'b'
Другие вопросы по тегам