如何解决无法使用MiniMagick进行操作,可能不是图像吗?原始错误:您必须安装ImageMagick或GraphicsMagick

时间:2019-09-16 23:32:39

标签: ruby-on-rails local carrierwave minimagick

在生产环境中,我的代码可以正常工作,但是当我尝试上传时,我的代码在本地回滚

因此,我尝试强制更新接受带有更新的上传!这给了我这个错误信息:

ActiveRecord :: RecordInvalid在EmployeesController#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

1 个答案:

答案 0 :(得分:0)

我遇到这个问题已有48个小时了。我认为您只需要按照它说的去做,安装ImageMagick。我假设您使用的是Mac版brew install imagemagick。我的问题是我正在尝试播种图像数据(作为来自app/assets/images/ folder locally的URL,而这正是错误提示的时间。希望对您有所帮助。