今天进入一个有趣的场景,我不确定如何解决。
给定带有初始化程序的rails应用程序:
档案:config/initializers/integrations.rb
Integrations::CONFIGS = { "key" => "value" }.freeze
如果我进入bundle exec rails console
并要求该常数,它会按预期工作:
Integrations::CONFIGS
=> {"key"=> "value"}
然后,如果我在控制台中使用reload!
,我将失去该常数:
[2] pry(main)> reload!
Reloading...
=> true
[3] pry(main)> Integrations::CONFIGS
NameError: uninitialized constant Integrations::CONFIGS
from (pry):3:in `<main>'
如果我删除命名空间并将CONFIGS
作为常量,则它可以正常工作并重新加载。我已经阅读了尽可能多的reload!
文档,因为我可以找到并且从我所知道的内容中并未预料到这一点。
我的问题是,如何才能在初始值设定项中正确使用命名空间常量,同时仍能使用reload!
?