ruby-on-rails - 为什么 Rails 控制台不会加载对 ruby​​ 文件的更改

标签 ruby-on-rails ruby console

我正在编写一个在 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/

相关文章:

ruby-on-rails - 如何使 Rails 模型无效

ruby-on-rails - rails : How to only allow User to apply to job only once?

ruby - 根据公共(public)属性将 ruby​​ 数组分成多个数组

css - chardinjs 不能在 ruby​​ on rails 中工作

ruby-on-rails - 用于提交作为字符串传递的数组的 Rails 5 表单

ruby-on-rails - Rails 嵌套模型 - 删除关联

ruby-on-rails - 将 Rails 3.2 升级到 4.2.6,路由生成错误的资源路径名

java - 抑制玩家命令的控制台输出

c++ - 重定向 MFC GUI 应用程序中使用的 c++ dll 的控制台输出

c# - 绘制垂直金字塔