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