为什么File.expand_path(__ FILE__)?

时间:2014-05-03 08:36:19

标签: ruby-on-rails ruby

我一直在研究像Sinatra和Rails这样的ruby和框架,我看到了这种代码:

File.expand_path(..., __FILE__) # this returns something like /Users/.../app/something.rb

而不仅仅是从:

开始
File.expand_path(..., ".") # this returns something like /Users/.../app

由于两者都返回有效路径和已知路径,是否有理由从__FILE__而不是“。”开始导航?

提前致谢。

2 个答案:

答案 0 :(得分:4)

__dir__或(__FILE__)不一定与"."相同。前者是文件的位置。后者是调用主命令的位置(或者通过Dir.chdir等命令将其更改为的位置。)

答案 1 :(得分:0)

__FILE__表示当前文件,而'.'表示代码执行的当前目录。因此,与..相比,您必须在当前文件之前达到某个级别('.')才能到达特定文件。

have read开始, 是一种丑陋的使用方式。开发人员根据直觉使用它,它完全取决于项目/社区采用的约定。