rails控制台中调用之间的常量持久性

时间:2016-04-08 16:36:19

标签: ruby-on-rails

我在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会修复它?感谢您的任何信息。

1 个答案:

答案 0 :(得分:2)

这是因为spring - 它在后台启动了rails。更改文件后,它不会重新加载,因为它不知道您的数据文件,但在更改源文件时会重新加载。

要修复 - 每次想要完全重新加载时运行bin/spring stop