Как получить значение родительского экземпляра в дочерний класс в ruby? - PullRequest
0 голосов
/ 17 сентября 2018

Я не могу получить значения экземпляра родительского класса в дочерний класс, мой код выглядит следующим образом.

class TimeLine
    attr_accessor :tweets
    def initialize(tweets=[])
        @tweets = tweets
    end
    def print
        puts tweets.join("\n")
    end
end

class AuthenticateTimeLine < TimeLine
    def print
        authenticate!
        super
    end
    def authenticate!
        puts "authenticated!"
    end
end
TimeLine.new([1,2,3,4,5])
authenticate_timeline = AuthenticateTimeLine.new
authenticate_timeline.print

Когда я вызываю super в дочернем классе, я получаю пустоймассив.

1 Ответ

0 голосов
/ 17 сентября 2018

Это потому, что вы инициализируете его с пустым массивом, вы не передаете аргумент AuthenticateTimeLine.new, поэтому принимается значение по умолчанию [] (сравните ваш метод TimeLine#initialize).Если вы передадите свой массив в качестве аргумента, он будет работать:

authenticate_timeline = AuthenticatateTimeLine.new([1,2,3,4,5])
authenticate_timeline.print
# 'Works' now!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...