【问题标题】:Why will Rails Console not load Changes to ruby file为什么 Rails 控制台不会加载对 ruby​​ 文件的更改
【发布时间】:2013-10-18 14:02:45
【问题描述】:

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

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

如何让 rails 识别并加载对该文件的更改?

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

require 'file.rb'

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

【问题讨论】:

  • 更改什么文件?它在子目录中吗?你如何让控制台运行它?您当前在哪个目录中运行控制台?你能把你的问题说得更具体一点吗?!
  • 每次更改后尝试在控制台中运行reload!
  • 同意@MrYoshiji,你会发布答案吗?
  • 直到@Davey 确认这是他问题的实际解决方案,我才会这样做;-)

标签: ruby-on-rails ruby console


【解决方案1】:

如果您要更改存储在app/ 目录中的文件,您可以使用reload! 命令重新加载这些文件。

如果您在此之外进行更改,则需要退出并重新启动控制台。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-23
    • 2015-05-30
    • 2011-02-04
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    相关资源
    最近更新 更多