Warum findet Ruby keine Klassen in einem höheren Bereich, wenn das Modul mit ::? @ Angegeben wi
Ich habe gerade für eine Weile auf diese stecken. Nehmen Sie diese Basis:
module Top
class Test
end
module Foo
end
end
päter kann ich Klassen in @ definierFoo
das erstreckt sichTest
indem Sie dies tun:
module Top
module Foo
class SomeTest < Test
end
end
end
Allerdings, wenn ich versuche, Einrückungen mit @ zu minimier::
um das Modul anzugeben:
module Top::Foo
class Failure < Test
end
end
Dies schlägt fehl mit:
NameError: nicht initialisierte Konstante Top :: Foo :: Test
Ist das ein Fehler oder ist es nur eine logische Folge der Art und Weise, wie Ruby Variablennamen auflöst?