为什么我在Ruby中需要'support/number\u helper'时遇到LoadError

为什么我在Ruby中需要'support/number\u helper'时遇到LoadError,ruby,Ruby,当我使用require\u relative'support/number\u helper'时,它工作正常,但当我使用require'support/number\u 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\u relative'support/number\u helper'时,它工作正常,但当我使用require'support/number\u 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。

require\u relative'support/number\u helper'通过将给定字符串添加到当前文件的目录中来搜索要加载的文件。例如,在项目文件夹中有两个文件:

lib/special_gem/fetcher.rb
lib/special_gem/support/number_helper.rb
您可以在第一个文件中使用require_relative“support/number_helper”来加载第二个文件。该命令获取当前文件lib/special\u gem/的目录路径,附加给定的字符串support/number\u helper,并成功找到要加载的文件

如果给定的路径不是绝对路径,那么require命令会在$LOAD\u path中列出的目录中搜索该文件。很可能您的lib文件夹在此列表中,因此要加载第二个文件,您可以使用以下命令

require 'special_gem/support/number_helper'
因为它不是相对的,所以可以从项目的第一个文件或任何其他文件中使用它

使用require'support/number\u helper'时,它将在lib/support/number\u helper处搜索文件。如果该文件丢失,则引发LoadError异常

有关详细信息,请参阅