仅在Rails和Carrierwave存在属性时进行验证

时间:2016-04-25 16:40:38

标签: ruby-on-rails ruby-on-rails-4 carrierwave image-uploading

这是我的代码

Future

上传者

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 个答案:

答案 0 :(得分:1)

在FactSheet模型中,您可以这样:

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