Ruby`require';:无法加载此类文件(加载错误)

Ruby`require';:无法加载此类文件(加载错误),ruby,Ruby,我的目录结构如下所示: - lib - yp-crawler (directory) - file-a.rb - file-b.rb - file-c.rb - yp-crawler.rb require "yp-crawler/file-c" require "yp-crawler/file-b" require "yp-crawler/file-a" module YPCrawler end 我的lib/yp crawler.rb文件如

我的目录结构如下所示:

 - lib
   - yp-crawler (directory)
      - file-a.rb
      - file-b.rb
      - file-c.rb
   - yp-crawler.rb
require "yp-crawler/file-c"
require "yp-crawler/file-b"
require "yp-crawler/file-a"

module YPCrawler
end
我的
lib/yp crawler.rb
文件如下所示:

 - lib
   - yp-crawler (directory)
      - file-a.rb
      - file-b.rb
      - file-c.rb
   - yp-crawler.rb
require "yp-crawler/file-c"
require "yp-crawler/file-b"
require "yp-crawler/file-a"

module YPCrawler
end
当我尝试通过执行以下操作在命令行上运行文件时:

ruby lib/yp-crawler.rb
我得到这个错误:

`require': cannot load such file -- yp-crawler/file-c (LoadError)
    from .rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from lib/yp-crawler.rb:1:in `<main>'
`require':无法加载此类文件--yp crawler/file-c(LoadError)
from.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core\u ext/kernel\u require.rb:55:in'require'
来自lib/yp crawler.rb:1:in`'

这可能是什么原因造成的?

根据API Dock,
require\u relative
是您所需要的

Ruby尝试加载名为string的库,该库相对于所需的 文件的路径。如果无法确定文件的路径,则会显示LoadError 提高。如果加载了文件,则返回true,否则返回false

所以你要做的就是

require_relative "file-a"
require_relative "file-b"
require_relative "file-c"

您可以做的另一件事是将目录添加到
$LOAD\u PATH
(这是大多数gem需要文件的方式)。
$LOAD\u PATH
(又称
$:
)是ruby在调用
require
时查找文件的地方

所以你可以试试这个代码

# lib/yp-crawler.rb

$LOAD_PATH.unshift File.expand_path('..', __FILE__)
# it can be $LOAD_PATH.push also

require "yp-crawler/file-c"
require "yp-crawler/file-b"
require "yp-crawler/file-a"

module YPCrawler
end
附言。
例如,你可以知道回形针是如何做同样的事情的。

你有没有尝试过
要求相对的“file-a”
?@davidhu2000 Bruv…完美。成功了。加上它作为答案,我会接受的。谢谢出于好奇,这是自1.8/1.9以来的一个新变化吗?我正要发布这个。