2013-07-23 40 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