carrierwave - 在同一上传器中为图片和视频创建拇指

时间:2013-07-21 19:41:36

标签: ruby-on-rails carrierwave

我正在尝试为广告模型在同一上传器中创建图片或视频的拇指......

到目前为止,我正在尝试创建一个像这样的条件拇指:

  version :thumb do
      process :resize_to_limit => [50, 50]   if %w(jpg jpeg gif png).include?(file.extension)    
      process :screenshot => 5 if %w(mpg avi).include?(file.extension)
    end
  end

但显然,我在file.extension部分上遇到了错误

NameError: undefined local variable or method `file'

有谁知道如何在上传器中获取文件扩展名?

1 个答案:

答案 0 :(得分:3)

您的代码看起来像载波生成的上传器类,如果我正确理解您的问题,您正在寻找一种方法来限制可以转换为缩略图的文件类型。您可以将上传器类接受的文件类型列入白名单 - 因此在您的:thumb方法所在的上传器类中包含以下内容:

    # Add a white list of extensions which are allowed to be uploaded.
    # For images you might use something like this:
    def extension_white_list
      %w(jpg jpeg gif png)
    end