2013-03-28 75 views
1

我有一堆類是resque作業,我只是注意到我有一個常量定義在每個命名的RECEIVER中包含作業結果的電子郵件分佈列表。紅寶石,鐵軌,常量,resque

如果我有一個常量RECEIVER =「emails」,並在多個類中定義它,ruby/rails中的默認行爲是什麼。初始化時,每個類將RECEIVER的值分配給類的一個實例。

只是試圖想到重構這樣的最佳方式。謝謝

回答

2

它分別在每個類中定義。重構,以防止重複代碼的最好方法是使用一個module

module CommonMethods 
    RECEIVER = "emails" 
end 

,然後在你的類:

class SomeClass 
    include CommonMethods 

    #do stuff 
end 

這樣的郵件列表是隻在一個地方定義。

你也可以在這裏定義其他所有類都通用的方法。

+0

非常感謝。我認爲包括一個模塊只包含實例方法?這還包括常量? – BC00

+0

是的。您可以在包含模塊後使用'SomeClass :: RECIEVER'訪問常量 – Eugene