【发布时间】:2014-04-29 06:32:15
【问题描述】:
Rails version: 4.1
Paperclip version: 4.1.1
我正在使用上传模型来处理所有其他模型的附件,因为在大多数情况下:
model.rb:
has_many :uploads
validates_associated :uploads
目前,我的回形针附件有两个验证。内容:
# list of file types presented as ... for demonstration only
validates_attachment :attachment, content_type: { content_type:[
"application/pdf",
"application/vnd.ms-excel","application/excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/vnd.oasis.opendocument.spreadsheet",
"application/vnd.oasis.opendocument.text",
"application/vnd.oasis.opendocument.presentation",
"application/msword", "text/rtf", "text/plain",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/mspowerpoint",
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
"application/x-rar-compressed", "application/x-rar", "application/zip"]}
以及运行 clamdscan(病毒检查)的自定义验证:
validate :clean_file
def clean_file
errors.add :base, "File #{self.attachment.queued_for_write.inspect} is infected!" if
!self.attachment.queued_for_write.blank? &&
("#{system "clamdscan - < \"#{self.attachment.queued_for_write[:original].path}\" | grep FOUND" }")
end
两种验证都按预期工作。然而,错误总是落在“上传无效”或我在语言环境文件中提供的任何字符串。
errors.add :base 似乎被忽略了。
编辑:显示的错误消息来自模型,而不是来自上传。
如何传递实际显示的错误消息????
谢谢
Edit2:添加了内容验证字符串
【问题讨论】:
-
既然您现在已经解决了这个问题,请在解决方案中发布答案(提供比链接更详细的信息)或删除问题。这样它就不会显示为没有答案的“开放式”问题,并且如果您提供解决方案,将来可以帮助其他人。
标签: ruby-on-rails validation paperclip