2010-02-16 24 views

Respuesta

3

Accede a constantes en una clase o módulo determinado. P.ej. ActiveRecord::Base es la constante Base definida en el módulo ActiveRecord.

9

Se llama operador de resolución de alcance. 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.

+0

¿Qué tiene de especial? Es la forma normal de hacer esto. – Chuck

+0

@Chuck eso es verdad. Estoy hablando de mi futuro VB/C#. – Achilles

21

From the Pickaxe:

Cuando un receptor se especifica explícitamente en una invocación de método, puede ser separado del nombre del método utilizando ya sea un punto (.) o dos signos de 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 supondrá que una llamada al método receiver::Thing es en realidad un intento 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.

+1

no obtuve nada ........................................... – Liker777