2011-03-30 28 views
59

我有一個裝載Carrierwave上傳器的簡單模型。一切工作正常,但我得到一個未定義的方法「image_will_change!」 Heroku上的錯誤。未定義的方法`image_will_change!'對於Heroku上的CarrierWave

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 
+0

我遇到了同樣的錯誤消息,即使我做了rake db:migrate,錯誤仍然沒有消失。所以我最終升級到新的Cedar堆棧,並且它工作。我懷疑,如果我放棄數據庫,並重做整個遷移,它也會起作用。 – sivabudh 2011-08-21 04:25:07

回答

139

很可能您的heroku數據庫在收據表中沒有圖像列。

+3

工作正常!我忘了修改遷移以包含此字符串。 – 2011-03-30 20:42:59

+5

而且,如果在運行rspec測試時遇到類似這樣的錯誤,則可能忘記運行rake db:test:prepare'''。 – 2013-08-04 21:56:38

8

這可能是因爲你忘了運行:

rake db:migrate 
18

即使運行在Heroku遷移後,錯誤依然存在。

我發現需要一個heroku重啓命令才能永遠消除錯誤。

heroku restart 
+1

只是想讓你知道你救了我的命。在我發現這件事之前,我已經接近從我的辦公室窗戶跳下來了。 – vlasits 2013-06-10 18:09:55

+0

這個答案也應該標記爲正確的。 – 2014-04-04 08:41:16

+0

哇!在30分鐘的搜索後找到這個!爲我工作! – newbie 2014-11-20 01:09:49

相關問題