未定义的方法`image_will_change!' Heroku上的CarrierWave

Sea*_*man 59 heroku ruby-on-rails-3 carrierwave

我有一个安装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
Run Code Online (Sandbox Code Playgroud)

根据Carrierwave Wiki,我也正确设置了cache_dir.

receipt.image = File.open "public/images/test.jpg" #works fine in development, fails in heroku
Run Code Online (Sandbox Code Playgroud)

小智 143

您的heroku上的数据库可能没有在收据表中的图像列.

  • 而且,如果你在运行rspec测试时遇到这样的错误,你可能忘记运行```rake db:test:prepare```. (5认同)
  • 那很有效!我忘了我修改了迁移以包含此字符串. (3认同)

phi*_*nik 18

即使在heroku上运行迁移后,错误仍然存​​在.

我发现需要一个heroku restart命令才能永远消除错误.

heroku restart
Run Code Online (Sandbox Code Playgroud)


Edu*_*ana 7

这可能是因为你忘了跑:

rake db:migrate
Run Code Online (Sandbox Code Playgroud)