Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么Rails控制台不将更改加载到ruby文件_Ruby On Rails_Ruby_Console - Fatal编程技术网

Ruby on rails 为什么Rails控制台不将更改加载到ruby文件

Ruby on rails 为什么Rails控制台不将更改加载到ruby文件,ruby-on-rails,ruby,console,Ruby On Rails,Ruby,Console,我正在编写一个在rails控制台中运行的脚本 当我对文件进行更改时,即使退出并重新加载rails控制台,它也无法识别这些更改 如何使rails识别并加载对此文件的更改 该文件位于我的应用程序的根目录中。我加载rails控制台并运行: require 'file.rb' 第一次该文件将正常运行,但如果我对该文件进行更改,则不会加载它们。我可以删除文件中的所有代码,然后再次运行该文件,它仍然像编辑之前一样运行 如果您正在更改存储在app/目录中的文件,您可以使用reload命令 如果您正在进行超出

我正在编写一个在rails控制台中运行的脚本

当我对文件进行更改时,即使退出并重新加载rails控制台,它也无法识别这些更改

如何使rails识别并加载对此文件的更改

该文件位于我的应用程序的根目录中。我加载rails控制台并运行:

require 'file.rb'

第一次该文件将正常运行,但如果我对该文件进行更改,则不会加载它们。我可以删除文件中的所有代码,然后再次运行该文件,它仍然像编辑之前一样运行

如果您正在更改存储在
app/
目录中的文件,您可以使用
reload命令

如果您正在进行超出此范围的更改,则需要退出并重新启动控制台

需要注意的是,在
require
调用中几乎总是省略
.rb
扩展名。另一件需要记住的事情是,
require'file'
将在
$LOAD\u路径中查找名为
file.rb的内容,并将在第一个路径中加载。您可能有两个同名的文件。尝试重命名它,看看是否有任何效果


Rails有一个非常好的自动加载程序,因此如果您将文件放在正确的开始位置,通常不需要使用
require
。例如,
MyClass
可以进入
app/models/my_class.rb
并自动加载。自动加载器也可以配置为在不同的位置查看。

更改什么文件?它在子目录中吗?如何让控制台运行它?您当前运行控制台的目录是什么?你能把你的问题说得更具体点吗?!尝试运行
重新加载
每次更改后,在您的控制台中与@MrYoshiji联系,您是否可以发布答案?在@Davey确认这是他问题的实际解决方案之前,我不会发布;-)