ruby require_relative gibt LoadError: kann den Basepath innerhalb von IRB nicht ableiten
Ich bin derzeit in
Dropbox/96_2013/work/ror/dmc/dmStaffing/QA/selenium_server_wyatt/spec/2day/units/
Ich kann in irb und benötigen eine Datei, aber es ist eine wirklich lange benötigen...
require '/home/durrantm/Dropbox/96_2013/work/ror/dmc/dmStaffing/QA/selenium_server_wyatt/spec/2day/units/login_as_admin_spec.rb'
=> true
Möchte ich require_relative, wie in
$ 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'
aber ich bekommen:
LoadError: cannot infer basepath
InformationsquelleAutor der Frage Michael Durrant | 2013-05-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
require_relative
erfordert eine Datei relativ zu der Datei, die den Aufrufrequire_relative
ist. Ihr Aufrufrequire_relative
ist nicht in irgendeiner Datei, die es im interaktiven interpreter, daher funktioniert es nicht.Können Sie die lange form
require
explizit übergeben Sie den vollständigen Pfad:Oder fügen Sie das aktuelle Verzeichnis der
$LOAD_PATH
und nurrequire
wie üblich:InformationsquelleAutor der Antwort Jörg W Mittag
Dies ist ein bekannter Fehler in ruby:
Wenn Sie mit Hebeln, statt des IRB, dies kann behoben werden durch die Installation der pry-require_relative gem.
InformationsquelleAutor der Antwort Gawin
Dieser arbeitete:
InformationsquelleAutor der Antwort Michael Durrant
require_relative
Werke in den Kontext der aktuellen Quellcode-Datei. Dies ist anders als das aktuelle Arbeitsverzeichnis. Ich glaube nicht, dassirb
oderpry
haben ein Verständnis von "diesem aktuellen Quellcode-Datei" - Konzept; da bist du eigentlich nicht in einer Datei.In dieser REPLsnur einen relativen Pfad verwenden, Referenz
require './units/login_as_admin_spec.rb'
.InformationsquelleAutor der Antwort Aaron K