Ruby on rails Rails控制台是否重新加载初始值设定项?
我使用Rails控制台手动测试了一些东西,发现我的一个初始值设定项(在config/initializers下)有一个错误。我退出控制台,进行了更改,然后再次运行“rails c”。令我大吃一惊的是,更新后的初始值设定项没有被执行 以下是我的发现: --如果我启动一个新的Bash会话并输入“rails c”,所有的初始化程序都会被执行 --如果我添加/更改一个初始值设定项,然后在同一个Bash会话中重新运行“rails c”,则不会执行初始值设定项 这在禁用缓存的开发中发生 到底发生了什么事?谢谢。的引入是为了让加载rails应用程序更快,方法是在内存中保留应用程序的副本,只重新加载更改的内容 不幸的是,有时您的初始值设定项可以保持完全相同,但它们需要重新运行。一个例子是“business_time”gem,它生成一个加载YAML文件的初始值设定项。您可以更改YAML文件并重新启动控制台,但Spring发现您的初始值设定项没有更改,因此不会重新运行它。因此,对YAML文件的更改不会引起注意,这是一个很难排除的错误 如果您遇到初始化程序问题,请退出控制台并运行:Ruby on rails Rails控制台是否重新加载初始值设定项?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我使用Rails控制台手动测试了一些东西,发现我的一个初始值设定项(在config/initializers下)有一个错误。我退出控制台,进行了更改,然后再次运行“rails c”。令我大吃一惊的是,更新后的初始值设定项没有被执行 以下是我的发现: --如果我启动一个新的Bash会话并输入“rails c”,所有的初始化程序都会被执行 --如果我添加/更改一个初始值设定项,然后在同一个Bash会话中重新运行“rails c”,则不会执行初始值设定项 这在禁用缓存的开发中发生 到底发生了什么事?谢
bundle exec spring stop
在回到控制台之前。这将强制重新加载初始值设定项
您还可以通过从gem文件中删除gem来完全禁用Spring。在rails中键入此命令
reload!
是的,这就是我所期望的。因此,我的问题是:你试过重新启动spring吗?嗯,“spring”?我不知道你指的是什么。这是一个简单的RubyonRails控制台。您使用的是哪个特定版本的Rails?Spring:小心,不要使用初始值设定项;)真不敢相信,我花了1.5个小时试图弄清楚为什么ENV变量在初始化器中显示为
nil
,直到一位同事指出这一点。我在_exit{spring stop`}添加了,以解决这个问题