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::Recordde l'extérieur de Musicvous utilisezMusic::Record .
Pour référencer Music::Recordde Music::EightTrackvous pouvez simplement utiliser Recordcar il est défini dans la même portée (celle de Music).
Cependant, pour accéder au Recordmodule responsable de l'interfaçage avec votre base de données, Music::EightTrackvous ne pouvez pas simplement l'utiliser Recordparce 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.