今天我偶然发现了一个棘手的问题,用Ruby常量。在我们的团队中,有人创建了一个模块,该模块包含在多个模型中。在我们的(规范)测试输出这导致到警告信息,如:解决恼人的“警告:已经初始化常量”消息
/home/ayrton/project/lib/life_cycle.rb:5:警告:已初始化 不断RESET
一的方式来解决这个问题是,正在申报的常数是这样的:
module LifeCycle
unless (const_defined?(:RESET))
RESET = 'reset'
end
#...
end
我也看到了一篇博客文章,通过Avdi格林,它提供了一种替代solution写的,我想知道你的意见是什么,关于这米东北黑钙土。
你的意思是'require'd在多个模型中,还是'include'd?它应该只加载一次,即使'require'd多次 –