Ruby Singleton attr_accessor

Kyl*_*cot 2 ruby singleton

我正在尝试在使用时创建一个包含Singleton模块的类attr_accessor.这似乎不起作用.

require 'singleton'

class Foo
  attr_accessor :bar
  include Singleton
end

Foo.bar = 'foobar'
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

undefined method `bar=' for Foo:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

saw*_*awa 5

Singleton不会改变attr_accessor工作方式.它只能确保您只能有一个实例.所以你必须attr_accessor在本征类内调用,就像你没有那样Singleton.

class Foo
  singleton_class.class_eval{attr_accessor :bar}
end
Run Code Online (Sandbox Code Playgroud)