【发布时间】:2011-12-18 17:03:44
【问题描述】:
今天我偶然发现了一个关于 Ruby 常量的棘手问题。在我们的团队中,有人创建了一个模块,该模块包含在多个模型中。在我们的(规范)测试输出中,这会导致警告消息,例如:
/home/ayrton/project/lib/life_cycle.rb:5:警告:已初始化 不断复位
解决这个问题的一种方法是,像这样声明你的常量:
module LifeCycle
unless (const_defined?(:RESET))
RESET = 'reset'
end
#...
end
我还阅读了 Avdi Grimm 撰写的博客文章,其中提供了替代方案 solution,我想知道您对此事有何看法。
【问题讨论】:
-
你的意思是在多个模型中是
required,还是included?即使required 多次也应该只加载一次