Carrierwave extension_white_list

时间:2016-07-05 02:24:18

标签: ruby-on-rails file-upload carrierwave

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

但是,如果上传的文件不正确,则会触发扩展验证错误和空白文件验证错误。如何在这些情况下仅触发文件扩展名错误而不是两个错误?

1 个答案:

答案 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,以便自定义错误消息