3

Rake タスクは、ActiveRecord モデル操作を実行します。rake タスクを追加ActiveRecord::Baseしましたが、ローカルでは機能しますが、Heroku では機能せず、次のエラーが発生します。

初期化されていない定数

との行にActiveRecord::Base。その行を含めないと、モデルをまったく使用できません(オブザーバーではなくモデルに対して同様のエラーが発生します)

4

4 に答える 4

5

config.threadsafe を使用していました。これにより、依存関係の読み込みが無効になります (したがって、オブザーバーは読み込まれず、モデルのみが読み込まれます)。解決策は、config.dependency_loading = true if $rails_rake_task を環境に追加することでした。

于 2012-12-11T00:16:11.320 に答える
4

rakeタスクは、ActiveRecordコードを実行する前にRails環境をロードする必要があります。

# lib/tasks/my_tasks.rake
task :my_task => :environment do
  # Your task here
  # it has access to the Rails environment now
end

この同様の問題カスタムレーキタスクのRailscastも参照してください。

于 2012-12-10T15:39:56.390 に答える
3

config.threadsafe!production.rb でコメントアウトすることで、この問題を修正できました。

于 2013-01-05T17:09:27.300 に答える