Я установил драгоценный камень state_machine. Отчет «gem list» сообщает, что он установлен локально. Я действительно использую этот камень успешно.Rake не может загрузить такой файл
$ ruby peer_state_machine_test.rb
отлично работает. Однако, когда я пытаюсь грабить, я ударил по ошибке, чтобы загрузить этот драгоценный камень.
peer_state_machine.rb:1:in `require': cannot load such file state_machine (LoadError)
Строка файла в вопросе:
require 'state_machine'
Я запутался, как есть разница в том, как рубин нагрузок этот файл и загружает его граблями. Есть много других тестовых файлов, которые работают без проблем. Это касается OS X, если это имеет значение.
'require' работает, глядя на' $ LOAD_PATH' для первого файла с именем 'state_machine.rb'. Быстрый способ увидеть ваш по умолчанию '$ LOAD_PATH':' ruby -e 'помещает $:' '. Чтобы узнать, что это такое в контексте команды «rake», создайте файл с именем «Rakefile» с этим содержимым: 'task: x do; ставит $ :; end' и запустить 'rake x'. На моей машине простой Ruby '$ LOAD_PATH' является подмножеством в контексте' rake'. Если у вас такая же ситуация, «LoadError» может означать, что «плохая» версия 'state_machine.rb' живет где-то в' rake'-context '$ LOAD_PATH' перед любым местоположением в plain' $ LOAD_PATH'. –
Вместо 'require 'state_machine'', попробуйте:' require_relative'./State_machine'' – Surya