调用类方法来初始化静态类

时间:2013-07-23 16:33:54

标签: ruby

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

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 

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

1 个答案:

答案 0 :(得分:1)

只要满足该方法,就会执行该方法。

  self.init_some_stuff

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