El ::
es el operador de resolución de alcance. Lo que hace es determinar en qué ámbito se puede encontrar un módulo. Por ejemplo:
module Music
module Record
end
module EightTrack
end
end
module Record
end
Para acceder Music::Record
desde fuera de Music
usted, usaría Music::Record
.
Para hacer referencia Music::Record
a Music::EightTrack
, simplemente podría usar Record
porque está definido en el mismo alcance (el de Music
).
Sin embargo, para acceder al Record
módulo responsable de la interfaz con su base de datos, Music::EightTrack
no puede usarlo simplemente Record
porque Ruby cree que lo desea Music::Record
. Fue entonces cuando se usaría el operador de resolución de alcance como prefijo, especificando el alcance mundial / principal: ::Record
.