Резюме
Используйте require
для установленных драгоценных камней
Используйте require_relative
для локальных файлов
require
использует ваш $LOAD_PATH
для поиска файлов.
require_relative
использует текущее местоположение файла, используя оператор
требуется
Require зависит от того, что вы установили (например, gem install [package]
) пакет где-то в вашей системе для этой функции.
При использовании require
вы можете использовать формат "./
" для файла в текущем каталоге, например, require "./my_file"
но это не обычная или рекомендуемая практика, и вы должны использовать require_relative
вместо.
require_relative
Это просто означает включение файла «относительно местоположения файла с оператором require_relative». Я обычно рекомендую, чтобы файлы находились "в" текущем дереве каталогов, а не "вверх", например не использовать
require_relative '../../../filename'
(до 3 уровней каталогов) в файловой системе, поскольку это приводит к созданию ненужных и хрупких зависимостей. Однако в некоторых случаях, если вы уже «глубоко» в дереве каталогов, тогда может потребоваться «вверх и вниз» другая ветвь дерева каталогов. Проще говоря, не используйте require_relative для файлов вне этого репозитория (при условии, что вы используете git, который на данный момент является стандартом де-факто в конце 2018 года).
Обратите внимание, что require_relative
использует текущий каталог файла с оператором require_relative (поэтому не обязательно ваш текущий каталог, из которого вы используете команду). Это делает путь require_relative
«стабильным», так как он всегда будет относиться к файлу, требующему его одинаковым образом.