Siento no haber podido obtener el código de formato a trabajar en un 'comentario 'solo en una' respuesta ', pero esto es en respuesta a la pregunta de Akostadinov a Hendrik "¿En qué se diferencia esto de la respuesta de [Konstantin]?"
Supongo que Hendrik estaba intentando acceder a la constante desde los métodos en su clase heredada & que depende de si es una instancia o método estático. Parece comportarse como esperarías en un método de instancia. Pero tal vez o tal vez no sea lo que esperarías de un método estático. Incluso si eso no es lo que quería decir Hendrik, esto puede ser vale la pena destacar:
Si tiene las definiciones de clase exactas como Konstantin, pero se agrega un método a la clase A de la siguiente:
def self.print_const
puts CONST
end
Entonces usted consigue una en ambas ocasiones:
A.print_const # prints A
B.print_const # prints A
Sin embargo, si se define el método en una haciendo referencia a la clase:
def self.print_const
puts self::CONST
end
Luego obtienes:
A.print_const # prints A
B.print_const # prints B
Perfecto, muchas gracias! – Tom
Entonces, ¿esto significa que no hay forma de hacerlo sin cambiar en todas partes en la clase A que usa CONST? – nohat
Sí. La búsqueda constante generalmente se vincula en el momento de la compilación. –