Определение attr_accessor для переменных экземпляра класса - Ruby
Я пытаюсь создать метод доступа к переменной экземпляра класса. Я звоню 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