Ruby中require_relative报cannot load such file LoadError求助
问题根因
两处相对路径书写错误直接触发了这个LoadError:
require_relative的路径计算基准是书写该行代码的文件自身所在的目录,不是项目根目录。
你的bin/run文件位于项目的bin/子目录下,文件里写的require_relative './bin/environment.rb',实际解析出的路径是项目根目录/bin/bin/environment.rb,和报错信息里提示的不存在路径完全匹配。- 你的
environment.rb文件实际存放在项目的config/目录下,和bin/目录为同级关系,本身就不在bin/目录内部。
修正步骤
修改
bin/run文件中的路径引用
把原来的require_relative './bin/environment.rb'替换为:require_relative '../config/environment.rb'
这个路径的逻辑是:从当前bin/目录向上跳转一级回到项目根目录,再进入config目录找到environment.rb,和实际目录结构完全匹配。同步修正
config/environment.rb内部的相对路径引用
这部分文件位于config/目录下,原来写的require_relative "./lib/xxx.rb"会解析为config/lib/xxx.rb,路径同样错误,需要把这几行改成向上跳转一级的路径:require 'pry' require 'httparty' require_relative "../lib/api.rb" require_relative "../lib/cli.rb" require_relative "../lib/pokemon.rb"
改完之后直接执行ruby bin/run就可以正常加载依赖运行程序。
内容的提问来源于stack exchange,提问作者Jason Sevilla
相关产品推荐
相关产品推荐

