मैं उम्मीद के रूप में निम्नलिखित कोड काम करने की उम्मीद में शामिल कर सकता है, लेकिन यह मेरे लिए एक NoMethodError (निजी विधि `foo '# < MyClass ... के लिए कहा जाता है)मैं गतिशील रूप से एक attr_reader
class MyClass
end
my_object = MyClass.new
my_object.instance_variable_set(:@foo, "bar")
MyClass.send("attr_reader", :foo)
puts my_object.foo
समस्या है देता है मैं एक बड़े आवेदन में शाब्दिक रूप से समान कोड का उपयोग कर रहा हूं और यह ठीक वैसे ही काम करता है जैसा मैं उम्मीद करता हूं, लेकिन जब मैं इसे सबसे बुनियादी उदाहरण में सरल बनाता हूं तो यह विफल हो जाता है।
(मैं समझता हूँ वहाँ मैं रूबी में क्या कर रहा करने के लिए कई अन्य तरीके हैं)
उदाहरण आईआरबी में काम करता है, लेकिन गहरे लाल रंग नहीं ... –
@jleedev जोड़ने के लिए instance_eval का उपयोग करें - मैं एक ही बात पाया (रूबी 1.8.6 और रूबी उद्यम 1.8.7 में दोनों)। irb बहुत अच्छा है, लेकिन यदि आप एक फ़ाइल से सटीक वही आदेश चलाते हैं ... क्या आपको लगता है कि यह रूबी कार्यान्वयन में एक बग है (आरईई ज्यादातर कचरा कलेक्टर को सिर्फ लालसा)? –