Rails Paperclip插件 - 验证

时间:2010-02-06 19:12:06

标签: ruby-on-rails paperclip

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 /

3 个答案:

答案 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?