ruby-on-rails - 如何解决使用MiniMagick操作失败,可能不是图像?原始错误: You must have ImageMagick or GraphicsMagick installed

标签 ruby-on-rails local carrierwave minimagick

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

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

EmployeesController#photo_upload 中的 ActiveRecord::RecordInvalid

验证失败:照片无法使用 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。假设您使用的是 Mac,我进行了 brew install imagemagick 。我的问题是,我试图从本地 app/assets/images/文件夹中获取图像数据(作为 URL),这就是错误弹出的时候。希望它有帮助。

关于ruby-on-rails - 如何解决使用MiniMagick操作失败,可能不是图像?原始错误: You must have ImageMagick or GraphicsMagick installed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57965548/

相关文章:

ruby-on-rails - 在开发模式下在 Ruby on Rails 上使用 alias_method_chain 自定义 Helper [REDMINE]

git - 如何设置本地 Git 存储库和本地备份目录?

Ruby Mechanize gem,从本地 html 副本恢复 Mechanize::Page 对象

android - 在 Android 4.4 Chromium webview 上播放内联本地 HTML5 视频文件的问题

ruby-on-rails - ruby 在与 webapp 不同的进程中运行代码

ruby-on-rails - 通过 HTTP、Ruby(无 ROR)序列化/反序列化对象

ruby-on-rails - Rails - 使用嵌套属性为 has_many 创建 seeds.rb

ruby - Carrierwave + MiniMagick - 如何将动画 GIF 压缩到第一帧?

ruby-on-rails - Rails 4.2.6 + 多态 + Carrierwave 0.10 + 条件

ruby-on-rails - 使用 open() 方法在 Rails 中创建/重命名临时文件