【问题标题】:Undefined method `image_will_change!' for CarrierWave on Heroku未定义的方法“image_will_change!”用于 Heroku 上的 CarrierWave
【发布时间】:2011-07-25 18:39:56
【问题描述】:

我有一个安装 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

【问题讨论】:

  • 我遇到了同样的错误消息,即使我做了 rake db:migrate,错误仍然没有消失。所以我最终升级到了新的 Cedar 堆栈,并且它起作用了。我怀疑如果我删除数据库并重做整个迁移,它也会起作用。

标签: ruby-on-rails-3 heroku carrierwave


【解决方案1】:

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

【讨论】:

  • 成功了!我忘了我修改了迁移以包含此字符串。
  • 而且,如果您在运行 rspec 测试时遇到这样的错误,您可能忘记运行 rake db:test:prepare
【解决方案2】:

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

我发现需要一个 heroku 重启命令才能永远消除错误。

heroku restart

【讨论】:

  • 只是想让你知道你救了我的命。在我发现这个之前,我这个沮丧地差点从我的办公室窗户跳下来。
  • 哇!经过30分钟的搜索找到了这个!为我工作!
【解决方案3】:

可能是你忘记跑了:

rake db:migrate

【讨论】:

    猜你喜欢
    • 2011-11-21
    • 2013-03-03
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多