0

我正在尝试为类实例变量创建访问器。我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

4

0 回答 0