我正在编写一个在 Rails 控制台中运行的脚本。
当我对文件进行更改时,即使我退出并重新加载 Rails 控制台,它也无法识别这些更改。
如何让 Rails 识别并加载此文件的更改?
该文件位于我的应用程序的根目录中。我加载 Rails 控制台并运行:
require 'file.rb'
该文件第一次运行时运行良好,但如果我对文件进行更改,它们将不会加载。我可以删除文件中的所有代码并再次运行文件,它仍然像编辑前一样运行。
最佳答案
如果您正在更改存储在 app/
目录中的文件,您可以使用 reload!
命令重新加载这些文件。
如果您要进行其他更改,则需要退出并重新启动您的控制台。
请注意,.rb
扩展名几乎总是在 require
调用中被省略。另一件要记住的事情是 require 'file'
会在你的 $LOAD_PATH
中查找名为 file.rb
的东西,并将加载到第一。您可能有两个同名文件。尝试重命名它以查看是否有任何效果。
Rails 有一个非常好的自动加载器,因此如果您将文件放在正确的开始位置,通常不需要使用 require
。例如,MyClass
可以进入 app/models/my_class.rb
并自动加载。自动加载器也可以配置为在不同的地方查找。
关于ruby-on-rails - 为什么 Rails 控制台不会加载对 ruby 文件的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302070/