我有一个时钟配置文件(在lib文件夹中),它将另一个文件的方法排队以执行延迟的任务。
require_relative "Adwords/Extractor"
它在我的本地机器上运行良好(WEBrick在win8上运行)。然而,在heroku上,它失败了,并出现以下错误:
'app[web.1]: /app/lib/clock.rb:5:in `require_relative': cannot load such file -- /app/li
b/Adwords/Extractor (LoadError)'
Extractor.rb脚本位于错误语句中提到的相同位置。
试用
require "#{Rails.root}/app/lib/Adwords/Extractor"
使用rails应用程序的相对路径。
在Ruby 1.9.2或更高版本中,不再成为当前目录。LOAD_PATH的一部分。
你可以通过使用绝对路径绕过它
File.expand_path(__FILE__) et al
或进行
require './filename' (ironically).
或使用
require_relative 'filename'
require './filename'
只有在执行脚本时,将工作目录设置为脚本所在的同一目录时才有效。在多目录项目中通常不是这样。