1
我有一堆类是resque作业,我只是注意到我有一个常量定义在每个命名的RECEIVER中包含作业结果的电子邮件分布列表。红宝石,铁轨,常量,resque
如果我有一个常量RECEIVER =“emails”,并在多个类中定义它,ruby/rails中的默认行为是什么。初始化时,每个类将RECEIVER的值分配给类的一个实例。
只是试图想到重构这样的最佳方式。谢谢
我有一堆类是resque作业,我只是注意到我有一个常量定义在每个命名的RECEIVER中包含作业结果的电子邮件分布列表。红宝石,铁轨,常量,resque
如果我有一个常量RECEIVER =“emails”,并在多个类中定义它,ruby/rails中的默认行为是什么。初始化时,每个类将RECEIVER的值分配给类的一个实例。
只是试图想到重构这样的最佳方式。谢谢
它分别在每个类中定义。重构,以防止重复代码的最好方法是使用一个module
module CommonMethods
RECEIVER = "emails"
end
,然后在你的类:
class SomeClass
include CommonMethods
#do stuff
end
这样的邮件列表是只在一个地方定义。
你也可以在这里定义其他所有类都通用的方法。
非常感谢。我认为包括一个模块只包含实例方法?这还包括常量? – BC00
是的。您可以在包含模块后使用'SomeClass :: RECIEVER'访问常量 – Eugene