Rake任務執行ActiveRecord模型操作。上線未初始化的常量ModelObserver - Heroku上的Rake任務
uninitialized constant BookingObserver
與ActiveRecord::Base
:我在耙子任務中添加ActiveRecord::Base
和本地工作,但不是在Heroku上造成此錯誤。如果我不包括那條線,那麼我根本不能使用這個模型(導致類似的錯誤只適用於模型而不是觀察者)。
Rake任務執行ActiveRecord模型操作。上線未初始化的常量ModelObserver - Heroku上的Rake任務
uninitialized constant BookingObserver
與ActiveRecord::Base
:我在耙子任務中添加ActiveRecord::Base
和本地工作,但不是在Heroku上造成此錯誤。如果我不包括那條線,那麼我根本不能使用這個模型(導致類似的錯誤只適用於模型而不是觀察者)。
您的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
我在使用config.threadsafe!禁止依賴加載(因此不加載觀察者,只是模型)。解決方案是在環境中添加config.dependency_loading = true,如果$ rails_rake_task。
這對我來說不起作用,但我可以通過評論'config.threadsafe!'來解決問題。感謝您指點我正確的方向。 – balexand
我可以通過在production.rb中註釋config.threadsafe!
來解決此問題。
而不是讓我們猜測你的代碼是什麼樣的,怎麼樣向我們展示它? – deefour
請參閱此答案 http://stackoverflow.com/questions/8379079/heroku-rake-task-uninitialized-constant-for-mongomapper-model –