我正在尝试为类实例变量创建访问器。我attr_accessor
从类中包含的模块调用该方法。请看下面的代码:
module Persistence
def self.included(mod)
mod.extend ClassMethods
# Add accessor for class instance variable
class << mod
attr_accessor :persistent_data
end
end
module ClassMethods
def X
persistent_data = 'data'
end
end
end
上面的代码有效。但是,当我将调用的代码更改为attr_accessor
:
mod.instance_eval do
attr_accessor :persistent_data
end
我明白了NoMethodError: undefined method `persistent_data='
两种方式不应该一样工作还是我的理解错了?我正在使用 REE 1.8.7