0

我正在使用以下方式通过载波验证上传文件内容的 mime 类型。

https://gist.github.com/denyago/1298417

但即使没有上传任何内容,此验证也会一直运行。这显然失败了,因为没有什么可以验证的。

 validates :logo, :file_mime_type => {:content_type => /image/}

没有上传任何内容时,是否有任何解决方法可以跳过验证?

谢谢 !!

更新:

在没有上传的内容存在之前,使用 proc 或 lambda 效果很好。

      ..., if => Proc.new{|company| company.logo.present?}

      @company.save #works will when @company contains correct mime type logo file 

      @company.save #fails when @company contains no logo file  

一旦有人上传徽标,它就会正确保存对象,并开始在没有图像上传的任何其他保存上引发错误的 mime 类型异常。

4

3 回答 3

0

当我尝试保存包含载波属性的模型时遇到了这个问题,比如您的示例中的图像标题。

validates :logo, :file_mime_type => { :content_type => /image/ },
:if => Proc.new{ |img| img.logo.present? and img.logo_changed? }

_改变了吗?可用于判断该特定属性是否已更改:如何检测模型的属性更改?

于 2013-09-22T19:28:47.503 回答
0

尝试添加 if 条件。例如:

validates :logo, :file_mime_type => {:content_type => /image/}, :if => Proc.new{|img| img.logo.present?}

于 2013-02-08T10:31:29.323 回答
-1

如载波文档中所述。

class MyUploader < CarrierWave::Uploader::Base
  def extension_white_list
   %w(jpg jpeg gif png)
  end
end
于 2013-02-15T00:20:44.993 回答