2011-03-30 4 views
59

У меня есть простая модель, которая устанавливает загрузчик Carrierwave. Все отлично работает в разработке, но я получаю неопределенный метод «image_will_change!» ошибка на герою.Неопределенный метод `image_will_change! ' for CarrierWave 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 

У меня также установлен cache_dir, в соответствии с Вики-структурой Carrierwave.

receipt.image = File.open "public/images/test.jpg" #works fine in development, fails in heroku 
+0

Я столкнулся с тем же сообщением об ошибке, и хотя я сделал рейк db: migrate, ошибка все равно не исчезла. Поэтому я закончил обновление до нового стека Кедра, и он сработал. Я подозреваю, что если бы я сбросил базу данных и переделал всю миграцию, это сработало бы. – sivabudh

ответ

139

Скорее всего, ваш db на heroku не имеет столбца изображения в таблице квитанций.

+3

Это сработало! Я забыл, что я модифицировал перенос, чтобы включить эту строку. –

+5

И если у вас возникла ошибка, когда вы запускаете тесты rspec, возможно, вы забыли запустить '' 'rake db: test: prepare'''. –

8

Это, вероятно, потому, что вы забыли запустить:

rake db:migrate 
18

Даже после запуска миграции на Heroku, сохраняется ошибка.

Я обнаружил, что требуется перезапустить команду heroku, чтобы победить ошибку навсегда.

heroku restart 
+1

Просто хотел сообщить, что вы спасли мне жизнь. Я был * этим * близко к прыжку из окна своего офиса в расстройстве, прежде чем я нашел это. – vlasits

+0

Этот ответ также должен быть отмечен как правильный. –

+0

Ничего себе! Нашли это через 30 минут поиска! Работал для меня! – newbie

Смежные вопросы