Cách đơn giản nhất để truy cập hằng số được bảo vệ của lớp được bao gồm trong bối cảnh Mối quan tâm của ActiveSupport :: Concern là gì?Truy cập hằng số được bảo vệ của lớp được bao gồm trong ActiveSupport :: Concern
Ví dụ lớp:
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
giải pháp này tạo ra một lỗi:
NameError: uninitialized constant Printable::MY_CONSTANT
Tôi nhận thức được một sự thay thế mà dường như làm việc:
puts self.class::MY_CONSTANT
Tuy nhiên, nó doesn không cảm thấy đúng. :-)
Bất kỳ đề xuất nào tốt hơn?
Câu hỏi của bạn là câu trả lời của tôi. Trong khi tôi đồng ý rằng nó không cảm thấy đúng, câu hỏi của bạn cuối cùng đã cho tôi một giải pháp mà ít nhất là làm việc. –