Undefined method `image_will_change!' for CarrierWave on Heroku
Ruby on-Rails-3HerokuCarrierwaveRuby on-Rails-3 Problem Overview
I have a simple model that mounts a Carrierwave uploader. Everything works fine in development, but I get an undefined method "image_will_change!" error on heroku.
class Receipt < ActiveRecord::Base
mount_uploader :image, ImageUploader
end
class ImageUploader < CarrierWave::Uploader::Base
storage :fog
def store_dir
"receipts/saved"
end
end
I have the cache_dir set appropriately as well according to the Carrierwave Wiki.
receipt.image = File.open "public/images/test.jpg" #works fine in development, fails in heroku
Ruby on-Rails-3 Solutions
Solution 1 - Ruby on-Rails-3
It's likely that your db on heroku doesn't have the image column in the receipts table.
Solution 2 - Ruby on-Rails-3
Even after running the migration on heroku, the error persisted.
I found that a heroku restart command was required to vanquish the error forever.
heroku restart
Solution 3 - Ruby on-Rails-3
It's probably because you forgot to run:
rake db:migrate