¿Qué significa :: (doble colon) en Ruby?

¿Qué significa :: en Ruby? Por ejemplo Foo::Bar .

Desde el pico :

Cuando un receptor se especifica explícitamente en una invocación de método, puede separarse del nombre del método usando un punto ( . ) O dos puntos ( :: :). La única diferencia entre estas dos formas ocurre si el nombre del método comienza con una letra mayúscula. En este caso, Ruby asumirá que una llamada al método receiver::Thing es en realidad un bash de acceder a una constante llamada Thing en el receptor, a menos que la invocación del método tenga una lista de parámetros entre paréntesis.

Se llama un operador de resolución de scope. Básicamente, es una forma elegante de hacer referencia a una clase dentro de un espacio de nombres. ActiveRecord es el espacio de nombres y Base es la clase.

Accede a constantes en una clase o módulo dado. Por ejemplo, ActiveRecord::Base es la Base constante definida en el módulo ActiveRecord .