0

我正在尝试创建一个需要一些复杂初始化的单例类。我把我的问题归结为这个测试用例:

class Dumb
  attr_accessor :mything
  @my_thing = 1           # this works
  self.init_some_stuff    # this gives undefined method
  class << self
    def init_some_stuff
      @my_thing = 2
    end
    def spill_it
      puts "My Thing: #{@my_thing}"
    end
  end
end 

我可以初始化简单的变量,但想调用类方法来做,我得到“未定义的方法”。由于我打算将其用作单例,因此不会调用构造函数。我错过了什么?

4

1 回答 1

1

只要满足一个方法,就会执行它。

  self.init_some_stuff

放在它的定义之前。那就是问题所在。将其放在定义之后。

于 2013-07-23T16:42:20.897 回答