ruby require_relative给出LoadError:“无法推断IRB内部的basepath”怎么办

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我目前在

Dropbox/96_2013/work/ror/dmc/dmStaffing/QA/selenium_server_wyatt/spec/2day/units/

我可以进入irb并提取一个文件,但这是一个非常长的要求...

require '/home/durrantm/Dropbox/96_2013/work/ror/dmc/dmStaffing/QA/selenium_server_wyatt/spec/2day/units/login_as_admin_spec.rb'
=> true

我想使用require_relative,如

$ cd /home/durrantm/Dropbox/96_2013/work/ror/dmc/dmStaffing/QA/selenium_server_wyatt/spec/2day/
$ pwd
/home/durrantm/Dropbox/96_2013/work/ror/dmc/dmStaffing/QA/selenium_server_wyatt/spec/2day
$ irb
irb(main):001:0> require_relative 'units/login_as_admin_spec.rb' 

但我得到:

LoadError: cannot infer basepath
提问于
用户回答回答于

require_relative需要一个与文件调用相关的文件require_relative。你的调用require_relative不在任何文件中,而是在交互式解释器中,因此它不起作用。

可以用require通过显式传递完整路径来使用长形式:

require './units/login_as_admin_spec.rb'

或者你添加当前目录$LOAD_PATH,只是require像往常一样:

$LOAD_PATH << '.'
require 'units/login_as_admin_spec'

扫码关注云+社区