Carrierwaveアップローダーをマウントするシンプルなモデルがあります。開発ではすべて正常に動作しますが、未定義のメソッド「image_will_change!」を取得しますherokuのエラー。
class Receipt < ActiveRecord::Base
mount_uploader :image, ImageUploader
end
class ImageUploader < CarrierWave::Uploader::Base
storage :fog
def store_dir
"receipts/saved"
end
end
Carrierwave Wikiに従ってcache_dirも適切に設定しています。
receipt.image = File.open "public/images/test.jpg" #works fine in development, fails in heroku
Herokuのデータベースの領収書テーブルに画像列がない可能性があります。
Herokuで移行を実行した後でも、エラーは続きました。
エラーを永久に打ち消すにはheroku restartコマンドが必要であることがわかりました。
heroku restart
おそらくあなたが実行するのを忘れたからでしょう:
rake db:migrate