निम्न उदाहरण में विफल रहता हैरूबी में स्ट्रिंग "ए :: बी :: सी" से कक्षा-वस्तु कैसे प्राप्त करूं?
class A
class B
end
end
p Object.const_get 'A' # => A
p Object.const_get 'A::B' # => NameError: wrong constant name A::B
अद्यतन
विषय पहले से पूछा के बारे में प्रश्न:
पिछले एक gives a nice solution जो
class String
def to_class
self.split('::').inject(Object) do |mod, class_name|
mod.const_get(class_name)
end
end
end
class A
class B
end
end
p "A::B".to_class # => A::B
अगर मैं उपयोग 'to_class' प्रणाली की घोषणा और एक' class', उदा के भीतर एक 'CONSTANT' लिए अपने मूल्य निर्धारित करना चाहते क्या होता है: इस यहाँ पर एक अच्छा लेख है 'कक्षा ए MY_CONST = "SomeOtherClass" .to_class end' शुरू करें? उदाहरण के लिए 'प्रारंभिक' के बाहर कॉल करते समय मुझे अनियमित स्थिरांक मिलता है। 'class_eval', मैं क्या कोशिश कर सकता हूं? धन्यवाद! – Dr1Ku