0

の下にいくつかのカスタム クラス/モジュールが定義されてい/app/libます。

環境をロードしてからクラスメソッドの1つを実行しようとするRakeタスクがあります。

rake タスクの例を次に示します。

namespace :box do
  task :fetch => :environment do
  BoxInterface::Tasc::Fetcher.fetch
  end
end

BoxInterface::Tasc::Fetcher.fetchRails コンソールから実行すると、問題なく動作します。

実行するbundle exec rake 'box:fetch'と、次のエラーが発生します。

uninitialized constant BoxInterface::Tasc

libの下のファイル構造は次のとおりです。

/app/lib/box_interface/tasc/fetcher.rb

ここで奇妙なのは、このコードが正常に動作するステージング サーバーがあることです。これは環境と関係がありますか?これをトラブルシューティングする方法がわかりません。

4

1 に答える 1

1

lib ディレクトリのフォルダーをapplication.rbファイルの自動ロード パスに追加しましたか? Rails 3.0 以降を使用している場合は、これを行う必要があるかもしれません。次の行を追加してみてください。

config.autoload_paths += %W(#{Rails.root}/lib/box_interface/tasc)

ファイル内のクラス定義 ( class Application < Rails::Application) 内。application.rb

于 2012-08-27T17:35:47.937 に答える