2014-01-05 28 views
0

當創建Rails應用程序,存在config.ru文件中的一行:爲什麼我們需要雙重冒號操作符在文件中的config.ru在Rails應用程序中?

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

你能不能解釋一下,爲什麼我們需要::File並不僅僅是File?將require File.expand_path工作?

+0

我明白'::'運算符是什麼。問題是關於特定的用法。我們是否需要它在'config.ru'中的'File'前面? 'File'與'File'相比有多不同? –

回答

2

::開頭代表主名稱空間。假設當前環境在模塊A內。如果你只有File,那麼它將首先查找A::File,並且只有當這個常量不存在時纔會在主名稱空間中查找File。另一方面,::File在主名稱空間中引用File,而不管是否存在A::File等。

相關問題