How to solve Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: You must have ImageMagick or GraphicsMagick installed

How to solve Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: You must have ImageMagick or GraphicsMagick installed

在生产环境中,我的代码运行正常,但当我尝试上传时,我的代码在本地回滚

所以我尝试强制更新接受更新上传!这给了我这个错误信息:

EmployeesController 中的 ActiveRecord::RecordInvalid#photo_upload

验证失败:照片用MiniMagick操作失败,可能不是图片?原始错误:您必须安装 ImageMagick 或 GraphicsMagick

基于此,我发现它与 MiniMagick 有关,在我的上传文件中进行了一些测试,我发现如果我评论这一行:

process resize_to_fill: [100, 100]

问题消失了。问题是我需要将矩形图像作为方形图像加载的那条线,因此无需播放每张图片和 CSS。所以我正在寻找一个长期的解决方案

class PhotoUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick

  process resize_to_fill: [100, 100]

  if Rails.env.production?
    storage :fog
  else
    storage :file
  end

  def store_dir
  end

  def extension_whitelist
    %w[jpg jpeg gif png]
  end

end

编辑:

根据一些提到在本地安装 ImageMagick 的评论,我进行了研究,因为我的部署是在 Heroku 中,所以它有点不同,但事实证明 Heroku 安装了 ImageMagick,所以这显然不是问题所在。对于那些想要证实的人,请输入:

heroku run identify -version

我遇到这个问题已经有 48 个小时了。我想你只需要完全按照它说的去做,安装 ImageMagick。我做了 brew install imagemagick 假设你在 Mac。我的问题是我试图播种图像数据(作为来自 app/assets/images/ folder locally 的 URL,那是错误弹出的时候。希望它有帮助。