以下是我在模型中使用paperclip的方法:
has_attached_file :photo,
styles: {
display: {
geometry: "146x153#",
format: :jpg,
},
message: {
geometry: "48x48#",
format: :jpg,
}
}
validates_attachment_content_type :photo, content_type: ['image/jpeg', 'image/png','image/gif']
validates_attachment_size :photo, less_than: 2.megabytes, unless: :record_is_new?
它工作正常,但是,我想使图像上传成为可选的,即如果用户不希望上传图片,则验证不适用。
答案 0 :(得分:2)
解决了这个问题,该模型进行了验证:
validates_attachment_presence: photo
我完全忽视了。
答案 1 :(得分:0)
有条件地尝试验证,将其添加到验证中:
validates_something_on :photo, ..., unless: Proc.new { |record| record[:image].nil? }
结果:
validates_attachment_content_type :photo, content_type: ['image/jpeg', 'image/png','image/gif'], unless: Proc.new { |record| record[:image].nil? }
validates_attachment_size :photo, less_than: 2.megabytes, unless: Proc.new { |record| record[:image].nil? }