2011-06-18 26 views
0

我一直在研究我的Ruby。当试图执行从Ruby Object documentation这个简单的例子,我得到这个错误:ruby​​ 1.8未定义方法`instance_variable_defined?'

undefined method `instance_variable_defined?'

这是我的代码:

class Fred 
    def initialize(p1, p2) 
    @a, @b = p1, p2 
    end 
end 

fred = Fred.new('cat', 99) 
fred.instance_variable_defined?(:@a) #=> true 
fred.instance_variable_defined?("@b") #=> true 
fred.instance_variable_defined?("@c") #=> false 

我做了什么错?我在Ubuntu 10.04的另一台机器上测试了它,它工作正常。顺便说一下,我使用的是Centos 5.5。

有谁知道如何解决这个问题?

+4

告诉你已安装的Ruby版本。 –

回答

3

我能想到的唯一的事情是,你正在使用Ruby的古代版(1.8.5或更早),因为1.8.6作为Object#instance_variable_defined?一直在Ruby中。

+0

感谢您的答复家伙,dmarkow是正确的,我使用Ruby 1.8.5会学尝试升级到1.8.6,所以我可以开始使用的DataMapper库。 – jameslimousin

+0

如果你要升级,你还不如用最新的1.8分支(1.8.7)的。 http://rvm.beginrescueend.com可能是您最好的最好的安装。 –