Qual è il modo più semplice per accedere alla costante protetta della classe inclusa nel contesto ActiveSupport :: Concern?Accesso alla costante protetta della classe inclusa in un ActiveSupport :: Concern
classi Esempio:
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
Questa soluzione produce un errore:
NameError: uninitialized constant Printable::MY_CONSTANT
Sono consapevole di un'alternativa che sembra funzionare:
puts self.class::MY_CONSTANT
Ma, doesn non mi sembra giusto :-)
Qualche suggerimento migliore?
La tua domanda è stata la mia risposta. Mentre sono d'accordo sul fatto che non mi sembra giusto, alla fine la tua domanda mi ha dato una soluzione che almeno ha funzionato. –