Domanda
Come posso ottenere la directory in cui si trova rakefile.rb?
Voglio usarlo come directory principale per localizzare tutto.
Soluzione
usa __FILE__
per ottenere il nome del file, quindi puoi ottenere la directory da lì:
in test.rb
puts __FILE__
uscita:
/users/foo/test.rb
__FILE__
si risolve nel percorso completo del file in cui si trova.
Usa questo per ottenere il nome della directory:
File.dirname(__FILE__)
Altri suggerimenti
Puoi ottenerlo chiamando il metodo application.original_dir . Nell'attività puoi ottenere l'oggetto applicazione usando il metodo applicazione sull'oggetto compito.
Perché non usare Dir.pwd
Se si tratta di un'app RoR, Rakefile.rb dovrebbe trovarsi nella directory RAILS_ROOT. Quindi in qualsiasi script è possibile specificare il percorso del file come
config.load_paths += %W( #{RAILS_ROOT}/extras )
A partire da Ruby 2 è possibile utilizzare __dir__
anziché File.dirname (__ FILE__)
per ottenere la directory che contiene lo script corrente.