Spiacente non ho potuto ottenere il codice di formattazione di lavorare in un 'commento 'solo in una' risposta ', ma questo è in risposta alla domanda di Akostadinov a Hendrik "com'è diverso dalla sua risposta [di Konstantin]?"
Direi che Hendrik stava cercando di accedere alla costante dai metodi nella sua classe ereditaria & che dipende dal fatto che si tratti di un'istanza o di un metodo statico. Sembra comportarsi come ci si aspetterebbe in un metodo di istanza. Ma forse o forse non come ti aspetteresti per un metodo statico. Anche se questo non è quello che voleva dire Hendrik, questo può essere la pena di notare:
Se si hanno le definizioni esatte di classe come Konstantin, ma si aggiunge un metodo per classe A in questo modo:
def self.print_const
puts CONST
end
Poi si ottiene un entrambe le volte:
A.print_const # prints A
B.print_const # prints A
Tuttavia, se si definisce il metodo in un facendo riferimento alla classe:
def self.print_const
puts self::CONST
end
Quindi si ottiene:
A.print_const # prints A
B.print_const # prints B
Perfetto, grazie mille! – Tom
Quindi ... questo significa che non c'è modo di farlo senza cambiare ovunque in classe A che usa CONST? – nohat
Sì. La ricerca costante è solitamente vincolata al momento della compilazione. –