Was ist der einfachste Weg, um auf die geschützte Konstante der eingeschlossenen Klasse im ActiveSupport :: Concern-Kontext zuzugreifen?Zugreifen auf die geschützte Klasse der eingeschlossenen Klasse in einem ActiveSupport :: Concern
Beispiel Klassen:
module Printable
extend ActiveSupport::Concern
private
def print_constant
puts MY_CONSTANT
end
end
class Printer
include Printable
def print
print_constant
end
private
MY_CONSTANT = 'Hello'.freeze
end
Diese Lösung erzeugt einen Fehler:
NameError: uninitialized constant Printable::MY_CONSTANT
ich bewusst eine Alternative bin, die zu funktionieren scheint:
puts self.class::MY_CONSTANT
Aber es doesn fühle mich nicht richtig. :-)
Irgendwelche besseren Vorschläge?
Ihre Frage war meine Antwort. Während ich zustimme, dass es sich nicht richtig anfühlt, gab mir Ihre Frage schließlich eine Lösung, die zumindest funktionierte. –