未初始化的常量Paperclip :: paperclip-ffmpeg出错

时间:2014-05-07 08:50:10

标签: ruby-on-rails pdf ffmpeg paperclip paperclip-validation

我正在使用Paperclip和paperclip-ffmpeg来处理上传。以下是我的代码

class Asset<的ActiveRecord ::基

 belongs_to :profile  
 has_attached_file :photo, :styles => {
      :mobile => {:geometry => "400x300", :format => 'mp4', :streaming => true}
  }, :processors => [:ffmpeg]


 validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png',  'image/gif', 'application/msword', 'application/pdf', 'video/x-flv']

当我上传图片或视频文件时,它正常工作。但是当我上传PDF或doc

文件,发生此错误。

       "uninitialized constant Paperclip::Error" 

任何帮助??

或者如果上传文件是PDF或Doc,我如何进行条件验证。然后我可以跳过这个

下面的代码。因为当文件类型为PDF或Doc时,这是错误原因。

        ":styles => {
      :mobile => {:geometry => "400x300", :format => 'mp4', :streaming => true}
  }, :processors => [:ffmpeg]" 

由于

1 个答案:

答案 0 :(得分:1)

我已经在LinkedIn上为你问过Kirti Thorat - 她可能比我更好地处理Paperclip::Error问题


  

或者如果上传文件是PDF或Doc

,我如何进行条件验证

在格式化has_attached_file方法以使用lambdahere's what we've done before

方面
has_attached_file :attachment,
     styles:        lambda { |a| a.instance.is_image? ? {:small => "x200>", :medium => "x300>", :large => "x400>"}  : {:thumb => { :geometry => "100x100#", :format => 'jpg', :time => 10}, :medium => { :geometry => "300x300#", :format => 'jpg', :time => 10}}},
     :processors => lambda { |a| a.is_video? ? [ :ffmpeg ] : [ :thumbnail ] }

def is_video?
 attachment.instance.attachment_content_type =~ %r(video)
end

def is_image?
 attachment.instance.attachment_content_type =~ %r(image)
end

这是相对较旧的代码,因此为了让您及时更新,Paperclip 4.0发布了新的媒体欺骗功能,该功能基本上直接检查您的文件(而不是扩展名)的内容类型。 Kirti对此非常了解,所以最好等待她的回答

如果你想要我

,我可以解决它