我有一个看起来像这样的目录结构:
- 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)
什么可能导致这种情况?
根据 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)
| 归档时间: |
|
| 查看次数: |
17733 次 |
| 最近记录: |