jbn*_*unn 16 console ruby-on-rails
我只是掌握了Rails控制台,并发现它可以快速测试我的类中的方法.我知道我可以对我的模型进行更改
> reload!
Run Code Online (Sandbox Code Playgroud)
抓住这些更新,但有时我会发现它似乎没有重新加载我的最新代码.Rails是否在某处缓存代码?
在一个非常简单的伪示例中,我可能在第100行上有错误的代码:
100: u = User.alll
Run Code Online (Sandbox Code Playgroud)
在Rails控制台中,当我运行此方法时,我可能会收到类似于以下内容的错误:
NoMethodError: undefined method `alll' for User:Class ... on line 100
Run Code Online (Sandbox Code Playgroud)
然后修改我的代码,修复错误
100: u = User.all
Run Code Online (Sandbox Code Playgroud)
然后重新加载:
> reload!
Run Code Online (Sandbox Code Playgroud)
然后,当在这个类中调用具有正确代码的方法时,它仍会说
NoMethodError: undefined method `alll' for User:Class ... on line 100
Run Code Online (Sandbox Code Playgroud)
如果清楚,错误是固定的,并且违规行甚至不再在第100行.有没有办法强制/硬重置"重新加载!" 命令?
Fla*_*ino 24
我的猜测是你正在做的事情:
UsersomeMethod实例reload!someMethod 现有实例并再次获取错误所以你在一个本身没有重新加载的实例上调用该方法.它的类已被重新加载,但实例已经在内存中 - 有bug和所有.
这至少是我的猜测(不是100%肯定).
重点是,如果您在该实例之后创建一个新实例reload!并在该新实例上调用您的方法,它应该停止抱怨.
| 归档时间: |
|
| 查看次数: |
2217 次 |
| 最近记录: |