次の方法を使用して、アップロードされたファイル コンテンツの 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 タイプの例外が発生し始めます。