Il ::
è l'operatore di risoluzione dell'ambito. Ciò che fa è determinare in quale ambito è possibile trovare un modulo. Per esempio:
module Music
module Record
end
module EightTrack
end
end
module Record
end
Per accedere Music::Record
dall'esterno Music
useresti Music::Record
.
Per fare riferimento Music::Record
da Music::EightTrack
puoi semplicemente usare Record
perché è definito nello stesso ambito (quello di Music
).
Tuttavia, per accedere al Record
modulo responsabile dell'interfacciamento con il tuo database Music::EightTrack
non puoi usarlo semplicemente Record
perché Ruby pensa che tu lo voglia Music::Record
. Questo è quando si usa l'operatore di risoluzione dell'ambito come prefisso, specificando la portata globale / main: ::Record
.