1

我有一个发条配置文件(在 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 脚本位于错误语句中提到的相同位置。

4

2 回答 2

1

在 Ruby 1.9.2 或更高版本中不再创建当前目录。LOAD_PATH 的一部分。

您可以通过使用绝对路径来解决它

File.expand_path(__FILE__) et al

或做

require './filename' (ironically).

或通过使用

require_relative 'filename'

require './filename' 

仅当您的脚本在工作目录设置为脚本所在目录的情况下执行时才有效。在多目录项目中通常不是这种情况。

于 2013-07-29T07:34:11.873 回答
1

试试这个

require "#{Rails.root}/app/lib/Adwords/Extractor"

使用 Rails 应用程序的相对路径。

于 2013-07-31T18:50:04.287 回答