2013-07-22 36 views
1

我有一個發條配置文件(在lib文件夾內),該文件將另一個文件的方法排隊以執行延遲任務。Heroku無法執行發條延遲任務

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腳本位於同一地點的錯誤發言中提到。

+1

使用大寫的文件名不是紅寶石中的最佳做法。也有一些操作系統不區分大小寫的情況。 – phoet

回答

1

嘗試了這一點

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

使用相對路徑Rails應用程序。

1

在Ruby 1.9.2或更高版本中不再生成當前目錄。你的LOAD_PATH的一部分。

您可以通過使用絕對路徑

File.expand_path(__FILE__) et al 

或做

require './filename' (ironically). 

或使用

require_relative 'filename' 

require './filename' 

只有當你的腳本與工作目錄下執行工作繞過它設置爲腳本所在的目錄。多目錄項目通常不是這種情況。