我在rails控制台中遇到了一个令人费解的问题。我在El Capitain上使用rails 4.2.5.2。
我有一些常量存储在名为config/initializers/constants.rb
的文件中:
POPULATIONS = Regions.read_populations_from_file
TEST_CONSTANT = "A"
如果我运行rails c,我会正确看到群体值。
如果我终止rails c
,请编辑区域数据文件,然后再次运行rails c
POPULATIONS
常量显示旧值。
如果我然后终止rails c,请将TEST_CONSTANT
更改为" B",然后再次运行rails c我再次获得正确的POPULATIONS
。
POPULATIONS
常量的错误缓存可以在系统上关闭所有shell窗口(之后还运行Terminal :: Quit Terminal
)。
有谁知道这是为什么?为什么POPULATIONS
陈旧(甚至幸存终止rails c
)?为什么更改TEST_CONSTANT
会修复它?感谢您的任何信息。
答案 0 :(得分:2)
这是因为spring
- 它在后台启动了rails。更改文件后,它不会重新加载,因为它不知道您的数据文件,但在更改源文件时会重新加载。
要修复 - 每次想要完全重新加载时运行bin/spring stop