如何获取rakefile.rb所在的目录?
我想用它作为我的根目录来找到所有内容。
答案 0 :(得分:39)
使用__FILE__
获取文件名,然后您可以从那里获取目录:
test.rb
中的
puts __FILE__
输出:
/users/foo/test.rb
__FILE__
解析为其所在文件的完整路径。
使用此命令获取目录名称:
File.dirname(__FILE__)
答案 1 :(得分:23)
您可以通过调用 application.original_dir 方法获取它。在任务中,您可以在任务对象上使用应用程序方法实现应用程序对象。
答案 2 :(得分:7)
为什么不直接使用Dir.pwd
答案 3 :(得分:2)
如果这是一个RoR应用程序,您的Rakefile.rb应该在您的RAILS_ROOT目录中。因此,在任何脚本中,您都可以指定文件位置,如
config.load_paths += %W( #{RAILS_ROOT}/extras )
答案 4 :(得分:1)
从Ruby 2开始,您可以使用__dir__
instead of File.dirname(__FILE__)
获取包含当前脚本的目录。