2011-08-22 48 views
1

我使用PaperclipJcrop我遵循rails cast来制作它。 当我上传的图像它的工作,但是当我尝试裁剪,我得到这个我的控制台中:处理缩略图的回形针错误

[paperclip] An error was received while processing: #<Paperclip::PaperclipError: There was an error processing the thumbnail for paperclip-reprocess20110822-2281-19969sz> 
[paperclip] An error was received while processing: #<Paperclip::PaperclipError: There was an error processing the thumbnail for paperclip-reprocess20110822-2281-19969sz> 

有我的模型:

class User < ActiveRecord::Base 
    has_attached_file :avatar, :styles => { :small => ["100x100#", :jpg], :large => ["500x500>",:jpg] }, :processors => [:cropper] 
    attr_accessor :crop_x, :crop_y, :crop_w, :crop_h 
    after_update :reprocess_avatar, :if => :cropping? 

    def cropping? 
     !crop_x.blank? && !crop_y.blank? && !crop_w.blank? && !crop_h.blank? 
    end 

    def avatar_geometry(style = :original) 
     @geometry ||= {} 
     @geometry[style] ||= Paperclip::Geometry.from_file(avatar.path(style)) 
    end 

private 
    def reprocess_avatar 
     avatar.reprocess! 
    end 
end 

而且我的处理器:

module Paperclip 
    class Cropper < Thumbnail 
     def transformation_command 
      if crop_command 
       crop_command + super.first.sub(/ -crop \S+/, '') 
      else 
       super 
      end 
     end 

     def crop_command 
      target = @attachment.instance 
      if target.cropping? 
       " -crop #{target.crop_w}x#{target.crop_h}+#{target.crop_x}+#{target.crop_y}" 
      end 
     end 
    end 
end 

任何想法来解决这个问题? (我在OS 10.7)

回答

2

解决方案找到comments of the railscast

内部在模型

#has_attached_file :avatar, :styles => { :small => ["100x100#", :jpg], :large => ["500x500>",:jpg] }, :processors => [:cropper] 
has_attached_file :avatar, :styles => { 
    :small => {:geometry => "100x100#", :processors => [:cropper]}, 
    :large => {:geometry => "500x500>"} 
} 

在处理器

#crop_command + super.sub(/ -crop \S+/, '') 
crop_command + super.join(' ').sub(/ -crop \S+/, '').split(' ') 
相关问题