rails plugin paperclip支持模型的验证,例如:
validates_attachment_size
唯一的问题是使用此验证似乎强制验证实际附件,有时可能没有。
如果我正在验证以下内容,那么条件是:如果不存在,我是否可以使用忽略验证:文件存在? (意思是用户提交的父对象没有附加文档)。
validates_attachment_size :document, :less_than => 5.megabytes, :if => ???
父对象是:注意,所以在note.rb文件中我有:
has_attached_file :document
RDocs:dev.thoughtbot.com/paperclip /
答案 0 :(得分:2)
您可以在验证声明后传递:if => lambda { avatar.dirty? }
,假设您的附件名为头像。例如:
validates_attachment_size :avatar, :less_than => 500.kilobytes, :if => lambda { avatar.dirty? }
答案 1 :(得分:0)
您可以添加:allow_nil => true
选项,如果附件不存在,将跳过验证。
答案 2 :(得分:0)
检查文件名。
validates_attachment_size :document, :less_than => 5.megabytes, :if => !self.document_file_name.nil?