ruby-on-rails – 如何使用paperclip处理多种文件类型

如何使用单个回形针字段来处理不同的文件类型.例如,我有一个带有回形针方法文件模型,该方法说:

has_attached_file :file

文件可以是图片,音频,视频或文档.

如果它是一张图片,我怎样才能使has_attached_file:文件能够以这种方式处理图片

has_attached_file :file,styles: {thumb: "72x72#"}

然后,如果它是其他文档类型,它将在没有样式的情况下正常工作,因此我不必为不同的文件类型创建字段.

解决方法

处理条件样式的方法是使用 lambda来确定您正在处理的内容类型.我们之前使用早期版本的Rails / Paperclip完成了这项工作:

#app/models/attachment.rb
Class Attachment < ActiveRecord::Base
    has_attached_file :file,styles: lambda { |a| a.instance.is_image? ? {:small => "x200>",:medium => "x300>",:large => "x400>"} : {}}  

    validates_attachment_content_type :file,:content_type => [/\aimage\/.*\Z/,/\Avideo\/.*\Z/]

    private

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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...