Ruby require :: File语法

时间:2012-09-26 18:40:57

标签: ruby-on-rails ruby

为什么在某些情况下,需要在ruby中使用File类的文件前面有一个空白的命名空间,如下面的代码 config.ru

require ::File.expand_path('../config/environment',  __FILE__)

在其他地方没有:

require File.expand_path('../../config/boot',  __FILE__)

由于

1 个答案:

答案 0 :(得分:4)

显式指定的范围解析运算符(如步骤1中所示)确保将从全局命名空间加载File类。

如果模块在其命名空间中重新定义了File类,则第二个版本将在全局范围内选择该类。

在大多数情况下,可以安全地忽略这一点,即使未定义范围解析运算符,您也可以假设您的类正由全局命名空间加载