我在编辑模型时遇到此错误,特别是当我删除与其关联的图像并选择另一个图像时:
Paperclip::NotIdentifiedByImageMagickError in Admin/packsController#update
Chrysanthemumprueba4.jpg is not recognized by the 'identify' command.
C:/Users/.../vendor/plugins/thoughtbot-paperclip-fc792c8/lib/paperclip/geometry.rb:24:in `from_file'但是当我创建一个新的包并为它选择图像时,它工作得很好。
我有两个表: pack和pack_images,pack_images有与pack相关的照片,下面是关系:
class Pack < ActiveRecord::Base
has_many :pack_images, :dependent => :destroy
end
class PackImage < ActiveRecord::Base
belongs_to :pack
attr_accessor :height, :width
has_attached_file :photo, :url => "/:attachment/:class/:id/:style_:basename.:extension", :styles => {:principal => "240x240>", :original => "400x400>", ...}
end这是控制器的操作,它抛出错误:
def update
@pack = Pack.find(params[:id])
@pack.pack_products
unless params[:pack][:pack_images_attributes].nil?
params[:pack][:pack_images_attributes].count.times do |i|
unless params[:pack][:pack_images_attributes][:"#{i.to_s}"][:photo].blank?
file = params[:pack][:pack_images_attributes][:"#{i.to_s}"][:photo]
dimensions = Paperclip::Geometry.from_file(file)
@pack.pack_images[i].width = dimensions.width
@pack.pack_images[i].height = dimensions.height
end
end
end
respond_to do |format|
@pack.update_attributes(params[:pack])
format.html { redirect_to(admin_pack_path(@pack.id), :notice => 'Pack updated') }
end我注意到,在更新时,我得到的参数(只有照片的名称)比创建时(照片的名称,文件类型,宽度,高度等)要少。
我希望你能帮助我
非常感谢
发布于 2013-06-05 14:46:10
它过去可以很好地处理pdf和图片,试用了一个小时左右,跟踪了我在谷歌上搜索的所有内容,后来在我的模型has_attached_file :attachment中发现了问题。
:styles => {:original=> "125x125#"} 我不得不注释这一行,它适用于其他附件,如docx或odt等。
因此,在您的案例中,请查看:styles => {:principal => "240x240>", :original => "400x400>"}并进行评论。
发布于 2011-08-16 22:47:16
找到identify命令的路径,如下所示:
$ which identify对于我来说,上面的命令打印如下:/usr/local/bin/identify
在一些初始化器文件中添加以下内容:
Paperclip::Attachment.default_options[:command_path] = "/usr/local/bin"发布于 2015-11-18 21:38:13
发生此错误的原因之一是,当您尝试确定不存在的图像的尺寸时:
Paperclip::Geometry.from_file(无)
此命令将挂起并导致此错误。
https://stackoverflow.com/questions/7079999
复制相似问题