今天,我偶然发现了一个有关Ruby常量的棘手问题。在我们的团队中,有人创建了一个模块,该模块包含在多个模型中。在我们的(规格)测试输出中,此结果会生成警告消息,例如:
/home/ayrton/project/lib/life_cycle.rb:5:警告:已初始化常量RESET
解决此问题的一种方法是,像这样声明常量:
module LifeCycle
unless (const_defined?(:RESET))
RESET = 'reset'
end
#...
end
我还阅读了由Avdi Grimm撰写的博客文章,该文章提供了一种替代解决方案,我想知道您对此事有何看法。
require
在多个模型中是d还是include
d?应该只有一次,即使装载require
d多次