如何解决ruby脚本中的错误?

时间:2011-08-23 10:18:47

标签: ruby linux

我的ruby脚本如下:

class Person
    def initialize(name)
        @name = name
    end

    def aMethod()
        puts "Excecuting aMethod"
    end
end

class Employee < Person
end

e1 = Employee.new("Salunke")
e1.id

执行上述脚本后我得到以下错误:

first.rb:16: warning: Object#id will be deprecated; use Object#object_id

如何解决上述警告/错误?

3 个答案:

答案 0 :(得分:3)

根据警告:

Object#id will be deprecated; use Object#object_id

所以,将id替换为object_id

e1.object_id

答案 1 :(得分:0)

在您的示例中,“e1”是您的类“Employee”(扩展Person)的实例

当你在实例“e1”上调用方法“id”(向对象发送消息“id”)时,ruby尝试在整个对象链上调用id方法。

主Object类没有声明“id”而是声明“object_id”方法。

正如Phelios指出的那样,信息很清楚。

答案 2 :(得分:0)

问题是:类id上有Object方法,但这可能不是您想要的那种ID。它是ruby vm生成的员工实例的object-id。由于这是一个非常常见的错误,id方法已被弃用,而更加简洁object_id。您必须自己实施id方法,或者,如果您真的需要object_id,请调用该方法而不是调用id