クラス インスタンス変数のアクセサを作成しようとしています。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 を使用しています