$ LOAD_PATH не включает рабочий каталог? - PullRequest
0 голосов
/ 09 декабря 2011

Почему текущий каталог не включен в $ LOAD_PATH?Это кажется странным.Я просто продолжаю добавлять его, но есть ли какая-то причина, по которой я не вижу, что он просто не включается автоматически?

1 Ответ

5 голосов
/ 09 декабря 2011

$LOAD_PATH включает текущий каталог в Ruby 1.8.7, но это поведение было изменено в 1.9.2. Вы можете найти возможные объяснения причин этого решения среди ответов на этот вопрос , но я думаю, что основная идея заключается в том, что . в 1.8.7 означает каталог, из которого выполняется ваш код, а не тот где это находится. И в большинстве случаев вы этого не хотите, и . в вашем $LOAD_PATH ненадежно.

Использование require_relative в 1.9.2 может быть хорошим решением, если вы не хотите добавлять . вручную к вашему $LOAD_PATH везде. Вы можете видеть здесь , что он просто расширяет относительный путь. Следует отметить, что он недоступен в версиях до 1.9.2, поэтому он сделает ваш код несовместимым со старыми рубинами.

...