我有一个rails模型,其中使用Paperclip上传图像。
我已经为图片添加了尺寸验证。
validates_attachment-size :image, less_than => 5.megabytes
当没有附件时尝试保存模型时,它会验证缺少的图像并且无法保存。
如果没有图像,我需要保存模型,验证只有在有图像时才有效。
答案 0 :(得分:1)
首先你的代码中有一个拼写错误。 validates_attachment-size
应为validates_attachment_size
。
你想这样做:
validates_attachment_size :image, less_than => 5.megabytes
这个内置帮助器可以正常工作。但是,此验证将强制验证实际附件,这意味着如果图像不存在则无效。
因此,如果您想确定是否存在图像,可以添加custom validator
来检查图像的存在。像这样:
validate :image_presence_and_size
def image_presence_and_size
if image.present? && image_file_size < 5.megabytes
errors.add(:file_size, "file size must be less than 5 megabytes.")
end
end
答案 1 :(得分:0)
请尝试以下代码。
scrollView
此处,如果模型中存在图像,验证将起作用,如果没有图像,将跳过验证。