没有附件时回形针验证
Paperclip validating when no attachment
我有一个 rails 模型,其中使用 Paperclip 上传图像。
我添加了图片尺寸验证。
validates_attachment-size :image, less_than => 5.megabytes
在没有附件的情况下尝试保存模型时,它会验证不存在但保存失败的图像。
如果没有图像,我需要保存模型,只有在有图像时才能进行验证。
试试下面的代码。
validate :image_present
def image_present
if image.present? && image_file_size < 2.megabytes
errors.add(:file_size, "file size must be between 0 and 2 megabytes.")
end
end
此处,如果模型中存在图像,验证将起作用,如果没有图像,将跳过验证。
首先,您的代码中有错字。 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
我有一个 rails 模型,其中使用 Paperclip 上传图像。
我添加了图片尺寸验证。
validates_attachment-size :image, less_than => 5.megabytes
在没有附件的情况下尝试保存模型时,它会验证不存在但保存失败的图像。
如果没有图像,我需要保存模型,只有在有图像时才能进行验证。
试试下面的代码。
validate :image_present
def image_present
if image.present? && image_file_size < 2.megabytes
errors.add(:file_size, "file size must be between 0 and 2 megabytes.")
end
end
此处,如果模型中存在图像,验证将起作用,如果没有图像,将跳过验证。
首先,您的代码中有错字。 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