这段代码来自 Rails Crash Course 书:
class Accessor
def self.accessor(attr)
class_eval "
def #{attr}
@#{attr}
end
def #{attr}=(val)
@#{attr} = val
end
"
end
end
这个想法是,一个子类Accessor
可以通过调用accessor
具有我们希望为其生成 getter 和 setter 方法的属性名称的方法来创建 getter 和 setter 方法:
class Element < Accessor
accessor :name
...
但是,为什么要使用self
in def self.accessor(attr)
?