在生产中,我的代码工作正常,但在本地,当我尝试上传时,我的代码正在回滚
所以我尝试强制更新接受更新上传!这给了我这个错误消息:
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/