ruby-on-rails – 什么是“reload!”的原因并不总是在Rails控制
发布时间:2020-12-16 20:17:35 所属栏目:百科 来源:网络整理
导读:我刚刚收到了Rails控制台的挂起,并且发现它很快在我的课程中测试方法.那我知道我可以改变我的模型了 reload! 抓住这些更新,但有时我会发现似乎没有重新加载我最新的代码. Rails是否在某处缓存代码? 在一个非常简单的伪示例中,我可能在100行上有错误的代码:
我刚刚收到了Rails控制台的挂起,并且发现它很快在我的课程中测试方法.那我知道我可以改变我的模型了
> reload! 抓住这些更新,但有时我会发现似乎没有重新加载我最新的代码. Rails是否在某处缓存代码? 在一个非常简单的伪示例中,我可能在100行上有错误的代码: 100: u = User.alll 在Rails控制台中,当我运行此方法时,我可能会收到类似于 NoMethodError: undefined method `alll' for User:Class ... on line 100 然后修改我的代码,修复错误 100: u = User.all 然后重新加载: > reload! 然后,当调用这个类中具有正确代码的方法时,它仍然会说 NoMethodError: undefined method `alll' for User:Class ... on line 100 很明显,这个错误是固定的,违规行甚至不在100行了.有没有办法强制/硬重置“重新加载!”命令? 解决方法
我的猜测是,你在做如下事情:
>创建一个User的实例 所以你在一个没有被重新加载的实例上调用该方法.它的类已被重新加载,但实例已经在内存中 – 有bug和全部. 这至少是我的猜测(不是100%肯定的). 要点是,如果你在重新加载后创建一个新的实例!并在该新实例上调用您的方法,它应该停止抱怨. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |