Как устранить ошибку в скрипте ruby? - PullRequest
0 голосов
/ 23 августа 2011

У меня есть скрипт 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 ]

3 голосов
/ 23 августа 2011

Согласно предупреждению:

Object#id will be deprecated; use Object#object_id

, замените id на object_id

e1.object_id
0 голосов
/ 23 августа 2011

Проблема в том, что в классе Object существует метод id, но это, вероятно, не тот тип идентификатора, который вам нужен.Это идентификатор объекта вашего сотрудника, сгенерированный ruby ​​vm.Поскольку это довольно распространенная ошибка, метод id устарел в пользу более краткого object_id.Вам придется реализовать метод id самостоятельно или, если вы действительно хотите object_id, вызвать этот метод вместо вызова id

0 голосов
/ 23 августа 2011

В вашем примере, "e1" является экземпляром вашего класса "Employee" (который расширяет Person)

Когда вы вызываете метод "id" (отправляете сообщение "id" объекту) в экземпляре "e1", ruby ​​пытается вызвать метод id для всей цепочки объектов.

Основной класс Object не объявлял "id", но метод "object_id".

Как указал Фелиос, сообщение достаточно ясное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...