我正在尝试为类实例变量创建一个访问器。我从包含在类中的模块调用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