1

遅延タスクを実行するために別のファイルのメソッドをキューに入れる時計仕掛けの構成ファイル (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 スクリプトは、エラー ステートメントで言及されているのと同じ場所にあります。

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 に答える