我有一个发条配置文件(在lib文件夹中),它将另一个文件的方法排队以执行延迟的任务。
require_relative "Adwords/Extractor"
它在我的本地计算机上工作正常(在win8上运行WEBrick)。但是在heroku上,它失败并出现以下错误:
'app[web.1]: /app/lib/clock.rb:5:in `require_relative': cannot load such file -- /app/li
b/Adwords/Extractor (LoadError)'
Extractor.rb脚本位于错误声明所述的相同位置。
答案 0 :(得分:1)
在Ruby 1.9.2或更高版本中不再创建当前目录。 LOAD_PATH的一部分。
你可以使用绝对路径来解决它
File.expand_path(__FILE__) et al
或正在做
require './filename' (ironically).
或使用
require_relative 'filename'
require './filename'
仅在脚本执行时将工作目录设置为脚本所在的同一目录才能生效。在多目录项目中通常不是这种情况。
答案 1 :(得分:1)
试试这个
require "#{Rails.root}/app/lib/Adwords/Extractor"
使用rails app的相对路径。