我希望如期下面的代碼工作,但它給了我(呼籲#< 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
的問題是NoMethodError我在一個更大的應用程序中使用完全相同的代碼,它的工作原理與我所期望的完全相同,但是當我將其簡化爲這個最基本的示例時,它就會失敗。
(我的理解有許多其他方法可以做到什麼,我在Ruby中正在做)
的例子在IRB的作品,但不是紅寶石... – 2011-03-31 22:44:12
@jleedev - 我發現同樣的事情(無論是在紅寶石1.8.6和Ruby 1.8.7企業)。 irb很棒,但是如果你從一個文件運行完全相同的命令......你認爲這是Ruby實現中的一個錯誤(REE主要是redid垃圾收集器)? – 2011-03-31 22:59:34