Rails和Carrierwave的新手,并尝试设置扩展程序白名单。这是我在attachment_uploader.rb控制器中的内容:
class AttachmentUploader < CarrierWave::Uploader::Base
...
# Add a white list of extensions which are allowed to be uploaded.
def extension_white_list
%w(pdf)
end
...
end
验证工作正常。当有人上传不是pdf的附件时,表单将提供错误消息。但是,一个小麻烦是验证错误消息是:附件您不能上传“txt”文件,允许的类型:pdf“。
如何设置以便从错误消息的开头删除“附件”一词?
此外,我还有另一个验证,以确保附件不是空白。
validates_presence_of :attachment, :on=> :create
但是,如果上传的文件不正确,则会触发扩展验证错误和空白文件验证错误。如何在这些情况下仅触发文件扩展名错误而不是两个错误?
答案 0 :(得分:0)
通常,当您致电object.errors.full_messages
时,这是Rails中的默认行为。您可以从object.errors.messages
哈希构建自己的哈希,在您的情况下,这应该是:
{attachment: ['You are not allowed to upload "txt" files, allowed types: pdf"']}
OR
Look at this,以便自定义错误消息