2013-07-23 39 views
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 

我可以简单的初始化变量,但要调用类的方法来做到这一点,我也得到“未定义的方法”。因为我打算将它用作单例,所以构造函数不会被调用。我错过了什么?

+0

为什么不用块初始化类? – Mohamad

+0

@Mohamad:对不起,没跟着你。 – Daiku

回答

1

方法在满足时执行。

self.init_some_stuff 

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

+0

D'oh!谢谢,Sawa。 – Daiku