我希望如期下面的代码工作,但它给了我(呼吁#< 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