2008-10-25 98 views
23

如何獲取rakefile.rb所在的目錄?耙和當前目錄

我想用這個作爲我的根目錄找到一切。

+0

您是否考慮過Dir.pwd的答案?看起來更合適:http://ruby-doc.org/core/classes/Dir.html#M002316 – 2010-07-28 16:28:32

+1

Dir.pwd在啓動rake命令時爲您提供目錄,您在哪裏。這不一定是rakefile的地方。 – user1934428 2015-07-28 10:27:43

回答

37

使用__FILE__指定文件位置獲取文件名,那麼你可以從那裏得到的目錄:

test.rb

puts __FILE__ 

輸出:

/users/foo/test.rb 

__FILE__解析爲完整路徑該文件是在

使用此獲得迪爾的名字:

File.dirname(__FILE__) 
+14

這大部分是正確的,但在Rakefile需要其他文件並且該文件需要知道Rakefile的位置的情況下是錯誤的;在這種情況下`Rake.application.original_dir`就是你想要的。 – TALlama 2011-10-06 19:23:25

2

如果這是一個RoR應用程序,您的Rakefile.rb應該位於您的RAILS_ROOT目錄中。因此,在任何腳本,您可以像

config.load_paths += %W(#{RAILS_ROOT}/extras) 
19

你可以通過調用application.original_dir方法得到它。在任務中您可以實現應用程序對象使用應用程序方法上的任務對象。

+1

我不認爲這解決了OP的問題,但這是我尋找的答案。 :) – 2012-05-21 22:42:55

6

爲什麼不直接使用Dir.pwd