【问题标题】:Carrierwave extension_white_list载波扩展_white_list
【发布时间】:2016-11-06 18:06:58
【问题描述】:

刚接触 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

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

【问题讨论】:

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


    【解决方案1】:

    通常,当您调用 object.errors.full_messages 时,这是 Rails 中的默认行为。您可以从 object.errors.messages 哈希构建您的,在您的情况下,这应该如下所示:

    {attachment: ['You are not allowed to upload "txt" files, allowed types: pdf"']}
    

    Look at this,为了自定义错误信息

    【讨论】:

      猜你喜欢
      • 2013-03-30
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      • 2012-08-24
      • 2011-09-27
      • 2017-07-31
      • 2013-03-29
      • 1970-01-01
      相关资源
      最近更新 更多