Le ::
est l'opérateur de résolution de portée. Il détermine la portée sous laquelle un module peut être trouvé. Par exemple:
module Music
module Record
end
module EightTrack
end
end
module Record
end
Pour accéder Music::Record
de l'extérieur de Music
vous utilisezMusic::Record
.
Pour référencer Music::Record
de Music::EightTrack
vous pouvez simplement utiliser Record
car il est défini dans la même portée (celle de Music
).
Cependant, pour accéder au Record
module responsable de l'interfaçage avec votre base de données, Music::EightTrack
vous ne pouvez pas simplement l'utiliser Record
parce que Ruby pense que vous le souhaitez Music::Record
. C'est lorsque vous utilisez l'opérateur de résolution de portée comme préfixe, en précisant la portée globale / main: ::Record
.