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/

10-15 10:43