Почему я получаю LoadError для require 'support / number_helper' в Ruby - PullRequest
0 голосов
/ 07 октября 2018

Когда я использую require_relative 'support/number_helper', он работает нормально, но когда я использую require 'support/number_helper', я получаю эту ошибку.

rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- ./support/number_helper (LoadError)

Я тоже пробовал это, но получаю ту же ошибку.

require './support/number_helper

Я использую Ubuntu.

1 Ответ

0 голосов
/ 07 октября 2018

require_relative 'support/number_helper' ищет файл для загрузки, добавляя данную строку в каталог current_file (__FILE__).Например, в папке вашего проекта есть 2 файла:

lib/special_gem/fetcher.rb
lib/special_gem/support/number_helper.rb

Вы можете использовать require_relative 'support/number_helper' в вашем первом файле для загрузки второго.Команда получает путь к каталогу текущего файла (lib/special_gem/), добавляет данную строку (support/number_helper) и успешно находит файл для загрузки.

Как насчет команды require, если заданный путь равенне абсолютный, он будет искать файл в каталогах, перечисленных в $ LOAD_PATH.Очень вероятно, что ваша папка lib находится в этом списке, поэтому для загрузки второго файла вы можете использовать команду

require 'special_gem/support/number_helper'

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

При использовании require 'support/number_helper' он будет искать файл в lib/support/number_helper.Если этот файл отсутствует, возникает исключение LoadError.

Подробнее см. в документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...