27

如何获取 rakefile.rb 所在的目录?

我想用它作为我的根目录来定位一切。

4

5 回答 5

39

用于__FILE__获取文件名,然后您可以从那里获取目录:

test.rb

puts __FILE__

输出:

/users/foo/test.rb

__FILE__解析为它所在文件的完整路径。

使用它来获取目录名称:

File.dirname(__FILE__)
于 2008-10-25T15:19:40.263 回答
25

您可以通过调用application.original_dir方法来获取它。在任务中,您可以使用任务对象上的应用程序方法来实现应用程序对象

于 2008-11-03T21:59:05.303 回答
7

为什么不直接使用 Dir.pwd

?

于 2009-05-01T08:30:30.917 回答
4

从 Ruby 2 开始,您可以使用__dir__而不是File.dirname(__FILE__)获取包含当前脚本的目录。

于 2018-07-23T17:43:22.263 回答
2

如果这是一个 RoR 应用程序,您的 Rakefile.rb 应该在您的 RAILS_ROOT 目录中。因此,在任何脚本中,您都可以指定文件位置,例如

 config.load_paths += %W( #{RAILS_ROOT}/extras )
于 2008-10-25T15:18:54.210 回答