Ruby`require':无法加载此类文件(LoadError)

mar*_*ion 4 ruby

我有一个看起来像这样的目录结构:

 - lib
   - yp-crawler (directory)
      - file-a.rb
      - file-b.rb
      - file-c.rb
   - yp-crawler.rb
Run Code Online (Sandbox Code Playgroud)

我的lib/yp-crawler.rb文件看起来像这样:

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

module YPCrawler
end
Run Code Online (Sandbox Code Playgroud)

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

ruby lib/yp-crawler.rb
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

`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>'
Run Code Online (Sandbox Code Playgroud)

什么可能导致这种情况?

dav*_*000 5

根据 API Dock,require_relative这就是您所需要的。

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

所以你所要做的就是

require_relative "file-a"
require_relative "file-b"
require_relative "file-c"
Run Code Online (Sandbox Code Playgroud)