http://gist.github.com/172341(stackoverflow正在破坏格式)
在以下情况下,boy无法使用由human创建的方法名。我的理解是否正确,attr_访问器方法不是
可用于子类。我需要使用超类来访问attr_访问器添加的方法。
最佳答案
您要找的是cattr_访问器,它解决了这个特定的问题:
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'
关于ruby - attr_accessor创建的方法不可用于子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1313771/