我有一个类方法,我想访问属性的值
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
访问属性的值。所以请建议我如何访问。
答案 0 :(得分:5)
类方法在类上下文中执行,line
是实例方法,您无法直接从self.output
访问它。
您真的想从类方法中访问实例属性吗?也许你需要的是class属性。如果是这样,您可以这样声明:
class Run
class << self
attr_accessor :line
end
end
,并且能够在类方法中获得它的价值。
如果确实需要从类方法访问实例属性 - 将该实例作为参数传递给方法并在其上调用访问器。