Frage
Wie bekomme ich das Verzeichnis, in dem sich die Rakefile.rb befindet?
Ich möchte dies als mein Root -Verzeichnis verwenden, um alles zu finden.
Lösung
verwenden __FILE__
Um den Dateinamen zu erhalten, können Sie das Verzeichnis von dort erhalten:
in test.rb
puts __FILE__
Ausgang:
/users/foo/test.rb
__FILE__
Löst den vollständigen Pfad der Datei, in der sie sich befindet.
Verwenden Sie dies, um den Dire -Namen zu erhalten:
File.dirname(__FILE__)
Andere Tipps
Sie können es bekommen, indem Sie anrufen application.original_dir Methode. In der Aufgabe können Sie erreichen Anwendung Objekt verwendet Anwendung Methode zum Aufgabenobjekt.
Warum nicht einfach Dir.pwd verwenden
?
Wenn dies eine ROR -App ist, sollte Ihr Rakefile.rb in Ihrem Rails_Root -Verzeichnis enthalten sein. In jedem Skript können Sie also den Dateispeicherort angeben
config.load_paths += %W( #{RAILS_ROOT}/extras )
Ab Ruby 2 können Sie verwenden __dir__
Anstatt von File.dirname(__FILE__)
Um das Verzeichnis zu erhalten, das das aktuelle Skript enthält.