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

ruby-on-rails – 使用Carrierwave和Rails 3可以使用相同的上传器很好地管理图像和非图像文件吗?

在我的Rails应用程序中,我想允许用户通过Carrierwave上传图像或非图像文件.目前Carrierwave正在处理和处理图像文件,但不幸的是它完全丢弃了非图像文件.单个Carrierwave上传器是否有一种干净的方式来处理图像和非图像文件

我将在下面包含我当前的上传者:

class AssetUploader < CarrierWave::Uploader::Base

  include CarrierWave::MiniMagick

  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  version :thumb do
   process :resize_to_fill => [300,300]
  end

  version :icon do
   process :resize_to_fill => [48,48]
  end

  def extension_white_list
    %w(jpg jpeg gif png pdf doc xls docx xlsx ppt)
  end

end

解决方法

我遇到了这个问题.我用一个更多级别的间接的hoary comp sci解决方解决了它:一个trampoline / thunk方法,动态决定是否根据文件扩展进行处理.

你可以在这里找到实现:https://gist.github.com/995663

(在版本块中引入逻辑的天真方法实际上不起作用,因为CarrierWave DSL如何工作 – 逻辑需要推迟到调用之前)

我希望有所帮助.

原文地址:https://www.jb51.cc/ruby/267976.html

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

相关推荐