如何修复CLI加载错误:`require_relative':无法加载此类文件-Ruby

时间:2018-01-13 17:33:54

标签: ruby

我已尝试过Stackoverflow上提供的与此错误相关的解决方案。我也通过重建我的gem尝试了一种试错法,但错误仍然存​​在。

以下错误:

./ bin / coding-schools:3:require_relative': cannot load such file -- /home/Jenhop8786/ temporary/coding_schools/bin/lib/coding_schools (LoadError) from ./bin/coding-schools:3:in'

在我的bin文件夹中,我的文件如下所示:

#!/usr/bin/env ruby

require_relative './lib/coding_schools'

CodingSchools::CLI.new.call

在我的lib文件夹中,我的文件如下所示:

require_relative "./coding_schools/version"
require_relative "./coding_schools/cli"

项目目录:

-->Temporary
-->coding_schools 
 ->bin
   -coding-schools
   -console 
   -setup 
 ->lib
   -cli.rb
   -coding_schools.rb
   -version.rb
-gitignore
-coding_schools.gemspec
-Gemfile
-LICENSE
-Rakefile
-README.md

1 个答案:

答案 0 :(得分:0)

尝试从./删除require_relative.指的是您启动Ruby进程的当前工作目录。

如果需要,您可以使用../上传一个目录。

使用您的特定目录结构,bin(或lib)中的文件可以使用以下代码加载lib中的文件:

require_relative '../lib/cli'
require_relative '../lib/coding_schools'
require_relative '../lib/version'

lib中的文件可以使用以下代码加载彼此:

require_relative 'cli'
require_relative 'coding_schools'
require_relative 'version'

如果您真的在制作宝石,我建议将lib中的每个文件放入一个与宝石同名的子目录中。那就是惯例。但是在你这样做之后,你必须修复一些相对包含,所以你应该首先让代码工作并将其标记为已接受的答案,然后查看。