使用paperclip在rails 4.2中上传非图像文件时出错

时间:2015-04-28 05:49:20

标签: paperclip ruby-on-rails-4.2

通过回形针上传非图像文件时出现此错误。

Paperclip error - NotIdentifiedByImageMagickError

这是我的型号代码:

has_attached_file :attachment, :styles => { :medium => "236x236>", :thumb => "150x150>", :large => "1000x500" }

以下是我的宝石版本:paperclip (4.2.1) activemodel (>= 3.0.0) activesupport (>= 3.0.0) cocaine (~> 0.5.3) mime-types

如果我从模型中删除样式,它可以正常工作。但我也需要调整图像大小。

2 个答案:

答案 0 :(得分:2)

尝试使用function模型钩子。它允许您更改或取消图像处理。从此处描述的示例https://github.com/thoughtbot/paperclip#events

  

如果你在before_filter中返回false(特别是 - 返回nil不相同),后处理步骤将停止。

new constructor

答案 1 :(得分:1)

您需要从模型中删除样式。该错误是由于当您上传非图像文件时,回形针将此文件发送到imageMagick以根据指定的样式调整大小。由于文件不是图像文件,因此imageMagick无法将文件转换为给定的分辨率并且系统崩溃。

您可以分割图像和非图像附件的字段。

has_attached_file :image_attachment, :styles => { :medium => "236x236>", :thumb => "150x150>", :large => "1000x500" }
has_attached_file :attachment

对于图像附件字段,请指定样式,不要指定非图像附件的样式。