我如何在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
是你在找什么。