2015-10-15 1 views
0

У меня есть вопрос о том, лучший способ сделать это:
У меня есть файл framework/helpers/test_helper.rb
начинается с линии
require_relative '../../framework/app_manager/app_manager'
После некоторых toughts я хочу реорганизовать framework/helpers папку и переместить этот файл framework/helpers/test/test_helper.rb
После этого я должен изменить первую строку этого файла для
require_relative '../../../framework/app_manager/app_manager'Как не менять require_relative после перемещения файлов

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

ответ

1

Лучший способ не использовать require_relative.

Поместите каталоги, содержащие файлы, которые вам потребуются в вашем $LOAD_PATH, а затем просто require их.

Если вы измените структуру своего каталога позже, вам просто нужно изменить линии, которые настроили ваши $LOAD_PATH, а не любые строки require.

Именно поэтому следует использовать $LOAD_PATH в качестве рубинового сплава и избегать require_relative.

http://joshuapaling.com/blog/2015/03/22/ruby-load-path.html

+0

Почти все примеры кода, которые я видел перед использованием 'require_relative'. Используется ли '$ LOAD_PATH' как хорошая практика? – ShockwaveNN

+0

'require_relative' популярен в примерах. Я думаю, что использование '$ LOAD_PATH' и' require' предпочтительнее. Вы можете составить свой собственный разум! Использование '$ LOAD_PATH' и прямой' require' - это способ решить точную проблему, которую вы задаете, - это то, что она была предназначена для этого. Я думаю, что вы увидите почти все драгоценные камни и большинство других хорошо написанных рубиновых кодов. Я думаю, что люди используют 'require_relative', потому что они не требуют, чтобы они понимали (или объясняли в примере), как работает LOAD_PATH, но я думаю, что использование $ LOAD_PATH - это правильный способ сделать это именно по той причине, которую вы просите , – jrochkind

+0

Спасибо, я пытаюсь реализовать использование '$ LOAD_PATH' в моем проекте и изучить его. Надеюсь, это не обратное мне – ShockwaveNN

Смежные вопросы