2012-09-26 96 views
3

为什么在某些情况下,需要使用ruby文件类文件都加上一个空白的命名空间像config.ru红宝石要求::文件语法

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

的下面的代码,并在其他地方有不是:

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

由于

回答

4

被明确指定(如在步骤之一)的范围解析操作者可以确保文件的类将是LOA从全局命名空间DED起来。

如果一个模块重新定义了File类在它的命名空间,第二个版本会挑选一个在全球性的。

在大多数情况下,可以安全地被忽略,你可以假设你的类由全局命名空间加载没有定义范围解析操作,即使