2013-05-30 4 views
6

Я работаю с Ruby 1.8, и у меня есть сценарий, который я хочу вызвать, но он находится в родительской папке. Ниже представлена ​​структура:Загрузить файл из родительского каталога

maindir/ 
neededscript.rb 
    subdir/ 
    subdir2/ 
     myscript.rb 

Как я могу требовать neededscript.rb изнутри myscript.rb?

ответ

5

Это то, что я сделал вместо этого:

File.expand_path("../../neededsript.rb",File.dirname(__FILE__)) 
6

В Ruby> = 1.9 вы можете использовать метод require_relative

require_relative дополняет встроенный метод требует, позволяя загрузить файл, который по отношению к файлу, содержащему require_relative заявление.

require_relative '../../neededscript.rb' 
+0

Извините за поздний комментарий, но, как я упомянул, использую ruby ​​1.8. *. – zulq

+0

Не беспокойтесь. Просто для контекста, я укажу, что в версии не было вопроса, когда я ответил :), но был отредактирован после. Для версии ~ 1.8 любой из двух других ответов хорош. – fullybaked

5

Вы также можете добавить путь к пути рубин ЛИЭС, добавив следующие строки в myscript.rb, прежде чем делать то требуют

binpath = File.dirname(__FILE__) 
$:.unshift File.expand_path(File.join(binpath, "..")) 
Смежные вопросы