Хотя это очень старый пост, я думаю, что некоторая дополнительная информация будет очень полезна для начинающих.
Лучший способ понять, что требуется, - это обратиться к переменной UNIX $ PATH.Переменная $ PATH в UNIX представляет собой список каталогов, в которых можно найти исполняемые файлы.Поэтому, когда вы вводите имя программы на любом терминале UNIX, ваш компьютер просматривает исполняемые файлы в каталогах, указанных в переменной $ PATH.Требуется что-то очень похожее.Например, когда вы пишете require 'set' в верхней части вашего файла Ruby, вы говорите Ruby просмотреть несколько каталогов для библиотеки с именем set.rb (библиотека set Ruby).
Итакгде Ruby ищет set.rb?Ну, опять же, в Ruby есть нечто очень похожее на переменную $ PATH в UNIX.Это глобальная переменная $ LOAD_PATH, также иногда известная своим уродливым и неописуемым псевдонимом $: (кстати, я не советую его использовать - хотя и коротким).Это массив имен каталогов, куда Ruby смотрит, когда сталкивается с требованием.
Есть хороший информативный пост здесь , где вы можете получить дополнительную информацию о require
, load
require_relative