是否有Rails控制台命令(Rails 3+)重新加载更改的代码?

Mat*_*ani 60 ruby ruby-on-rails ruby-on-rails-3

我正在玩控制台,我改变了一些模型代码,现在我想测试它.我通常会重新启动控制台.有更快的方法吗?也许是一个控制台命令来重新加载模型代码?

apn*_*ing 99

当然,只需输入:

reload!
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说似乎不起作用.如果我在模型中注释掉一个方法,那么输入`reload!`,该方法在重新加载后仍然有效.?!?我想知道为什么以及是否还有另一种"重新启动"控制台的方法? (6认同)
  • @Meltemi:这就是Ruby工作的方式(开放类的概念):它重新读取所有定义,覆盖现有方法但不刷新旧方法.使用`Class.send(:remove_method,:method_name)`来做这个伎俩 (4认同)
  • 这不适用于从“lib”手动需要的代码。有什么办法可以重新加载该代码吗? (2认同)

kar*_*gen 7

你需要打电话 reload!

此命令将清除已加载的已加载常量,并将在控制台中引用它们时加载它们.

如果您之前有旧对象,reload!则需要调用reload这些单个对象或查找新对象,并在想要尝试新方法时使用它们.