我如何在IRB中重新加载脚本?

我正在编写一个在Rails环境中使用的Ruby脚本,但我select从irb运行它,因为重新加载Rails控制台可能会很痛苦。 现在irb的等待时间要短得多,但是我很困扰我必须重新启动irb,并且每次修改都需要脚本。 有没有更简单的方法从irb重新加载脚本?

我在这个线程中find了一个方法,但是这显然只适用于gem文件。 我的要求声明看起来像这样

require "#{File.expand_path(__FILE__)}/../lib/query" 

编辑:已经尝试load而不是require ,我仍然无法得到它的工作。 我无法停止这些错误。

 ruby-1.9.2-p0 > load "#{File.expand_path(__FILE__)}/../lib/query.rb" LoadError: no such file to load -- /Users/newuser/Dropbox/Sites/rails/hacknyc/(irb)/../lib/query.rb 

在irb中, File.expand_path(__FILE__)}将返回"#{path you ran irb from}/(irb)" 。 这创build了一个实际上不存在的path。 幸运的是,所有的文件path都是相对于你运行irb的地方而言的。 这意味着所有你需要的是:

 load "lib/query.rb" 

如果你想在实际的文件中使用__FILE__ ,没关系,但不要期望在irb中产生一个有效的path。 因为irb根本就没有“文件”,所以根本无法返回有效的path。

另外, __FILE__将工作正常,如果在加载到IRB通过加载或需要的文件中使用。 因为这是有点什么。

尝试load ,而不是使用require 。 前者只加载一次源文件,后者每次调用时加载一次。

根据这个链接,你需要加载你的文件,不要忘记延长。

这个链接号码2也可以使用一个更好的版本, 这对你也有帮助。

你可能想尝试散列为什么你的轨道控制台不适合你。

我想load是你在找什么。