0

で存在しているとき、検証ここで私はのみ属性はRailsとCarrierwave

class FactSheet < ActiveRecord::Base 
    mount_uploader :image, ImageUploader 
end 

を持っているコードだとアップローダー

class ImageUploader < CarrierWave::Uploader::Base 
    def extension_white_list 
    %w(jpg jpeg gif png) 
    end 
end 

は、これはすべての良いですが、私が直面してる問題があることですこのシナリオでは、ユーザーがイメージを提供することはオプションです。したがって、1つも指定しないと、次の検証エラーが表示されたくない場合は

Image You are not allowed to upload "" files, allowed types: jpg, jpeg, gif, png 

画像がある場合、アップローダの検証/マウントのみを行う最良の方法は何ですか?あなたのファクトシートモデルで

+0

これは適切なバリデータですが、その場合、あなたがメッセージをスキップしたくない、私はちょうどそのケースを見ていません。 .. –

+1

エラーにつながる非画像を割り当てる場合は、フィールドに値を何も割り当てないでください。 –

答えて

1

、あなたは可能性があり、このような何か:

validates :attachment, allow_blank: true, format: { 
    with: %r{\.(gif|jpg|png|jpeg)\Z}i, 
    message: 'image must be a GIF, JPEG, PNG format' 
    } 
+0

これは素晴らしいことですが、可能であればImageUploaderクラスを使用したいと考えています。 "mount_uploader:image、ImageUploader"を条件付きで実行できますか? –

+0

なぜそれを条件付きで実行しようとしますか?あなたがあなたのモデルで単純な 'allow_blank:true'で取り除くことができる何かをすることができたら...私が知る限り、それをやっている誰も見ていません。 – uday

関連する問題