http://gist.github.com/172341(stackoverflow打破了格式化)
在下面的例子中,由Human创建的方法名称不适用于Boy.我的理解是否正确attr_accessor方法不是
可用于子类.我需要使用超类来访问attr_accessor添加的方法.
最佳答案 您正在寻找的是cattr_accessor,它修复了这个特定的问题:
http://apidock.com/rails/Class/cattr_accessor
这是你的例子,修正:
class Human
def self.age
@age = 50
end
def self.age=(input)
@age = input
end
cattr_accessor :name
self.name = 'human'
end
class Boy < Human
end
puts Human.age
puts Boy.age
puts Human.name
puts Boy.superclass.name
puts Boy.name # => 'human'