当我使用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。
答案 0 :(得分:1)
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'
由于它不是相对的,因此可以从您的第1个文件或项目的其他任何文件中使用它。
使用require 'support/number_helper'
时,它将在lib/support/number_helper
上搜索文件。如果该文件丢失,则会引发LoadError
异常。
有关详细信息,请参见the documentation。