Module名や、Class名かかぶってしまい、トップレベルのClassを呼び出したいのにそのメソッドの属する名前空間のClassが呼び出されてしまう場合は絶対パスで名前空間を指定すればいい。 通常 Foo::Hoge::Fuga という形で名前空間を指定するが、これは一番身近な名前空間を探すようになっているため、トップレベルの Foo と同名の名前空間が、呼び出し元の名前空間に存在してしまう場合は、を明示的にトップレベルを指定する必要がある。という話。 どう指定するかというと ::Foo とすればいい。 もともと::この2つのコロンはディレクトリの仕切りを表す記号として使われてきた歴史がある。 なので、考え方としては :: から始まれば絶対パス。ということになる。 コードで書くとこんな感じ class Foo; end module Bar class Foo; end class C