获取类方法中属性的值

Man*_*Das 1 ruby rubygems ruby-on-rails ruby-on-rails-3

我有一个类方法,我想访问属性的值

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
Run Code Online (Sandbox Code Playgroud)

在这个类方法中我想访问line属性的值,在类方法中我无法访问属性的值self.line.所以请建议我如何访问.

Vic*_*gin 5

类方法在类上下文中执行,并且line是实例方法,您无法直接从中访问它self.output.

你真的想从类方法中访问实例属性吗?也许你需要的是class属性.如果是这样,您可以这样声明:

class Run
  class << self
    attr_accessor :line
  end
end
Run Code Online (Sandbox Code Playgroud)

,并且能够在类方法中获得它的价值.

如果确实需要从类方法访问实例属性 - 将该实例作为参数传递给方法并在其上调用访问器.