2012-09-26 130 views
3

爲什麼在某些情況下,需要使用ruby文件類文件都加上一個空白的命名空間像config.ru紅寶石要求::文件語法

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

的下面的代碼,並在其他地方有不是:

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

由於

回答

4

被明確指定(如在步驟之一)的範圍解析操作者可以確保文件的類將是LOA從全局命名空間DED起來。

如果一個模塊重新定義了File類在它的命名空間,第二個版本會挑選一個在全球性的。

在大多數情況下,可以安全地被忽略,你可以假設你的類由全局命名空間加載沒有定義範圍解析操作,即使