微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐