为类实例变量定义attr_accessor - Ruby

时间:2012-10-19 18:00:28

标签: ruby attr-accessor instance-eval

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

0 个答案:

没有答案