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