我正在编写一个脚本,我在rails控制台中运行。为什么Rails控制台无法加载对ruby文件的更改
当我对文件进行更改时,即使我退出并重新加载rails控制台,它也不会识别这些更改。
如何让钢轨识别并将更改加载到此文件?
该文件位于我的应用程序的根目录中。我加载轨道控制台,然后运行:
require 'file.rb'
该文件将运行良好的第一次,但如果我更改了文件,他们不会被加载。我可以删除文件中的所有代码并再次运行该文件,它仍然像编辑之前一样运行。
我正在编写一个脚本,我在rails控制台中运行。为什么Rails控制台无法加载对ruby文件的更改
当我对文件进行更改时,即使我退出并重新加载rails控制台,它也不会识别这些更改。
如何让钢轨识别并将更改加载到此文件?
该文件位于我的应用程序的根目录中。我加载轨道控制台,然后运行:
require 'file.rb'
该文件将运行良好的第一次,但如果我更改了文件,他们不会被加载。我可以删除文件中的所有代码并再次运行该文件,它仍然像编辑之前一样运行。
如果要更改存储在app/
目录中的文件,可以使用reload!
命令重新加载这些文件。
如果您要进行更改,您需要退出并重新启动控制台。
需要注意的是,分机在拨打require
时几乎总是被省略。另外需要注意的是,require 'file'
会在您的$LOAD_PATH
中查找file.rb
,并将在第一个中加载。有可能你有两个同名的文件。尝试重命名它看看是否有任何效果。
Rails有一个相当不错的自动加载程序,所以如果您将文件放在正确的位置,通常不需要使用require
。例如,MyClass
可能会在app/models/my_class.rb
中并且会自动加载。自动加载器也可以配置为在不同的地方查看。
更改为什么文件?它在一个子目录中吗?你如何让控制台运行它?你目前正在运行控制台的目录是什么?你能否让你的问题更具体?! – TopGunCoder
尝试在每次更改后在控制台中运行'reload!' – MrYoshiji
同意@MrYoshiji,你会发布答案吗? – zeantsoi