Получение значения атрибута в методе класса - PullRequest
1 голос
/ 02 августа 2011

У меня есть метод класса, где я хочу получить доступ к значению атрибута

class Run

  attr_accessor :line

  def self.output(options={})
    station_no = options[:station]
    title = options[:title]
    line = self.line
    station = line.stations[station_no-1]
  end
end

в этом методе класса я хочу получить доступ к значению атрибута line, а в методе класса я не могу получить доступ к значению атрибута, используя self.line. Поэтому, пожалуйста, предложите мне, как я могу получить доступ.

1 Ответ

5 голосов
/ 02 августа 2011

Метод класса выполняется в контексте класса, а line является методом экземпляра, вы не можете напрямую получить к нему доступ из self.output.

Вы действительно хотите получить доступ к атрибуту экземпляра из метода класса?Может быть, вам нужен атрибут класса.Если это так, вы можете объявить его следующим образом:

class Run
  class << self
    attr_accessor :line
  end
end

и сможете получить его значение в методе класса.

Если вам нужен доступ к атрибуту экземпляра из метода класса -передать этот экземпляр в качестве аргумента методу и вызвать метод доступа к нему.

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