2013-03-28 42 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