代码之家  ›  专栏  ›  技术社区  ›  Mayuresh Srivastava

CarrierWave扩展白名单错误消息

  •  0
  • Mayuresh Srivastava  · 技术社区  · 7 年前

    我正在使用CarrierWave和Rails 5。在我的扩展名白名单中,允许的类型是JPG、JPEG和PNG。

    默认错误消息为:

    "You are not allowed to upload \"gif\" files, allowed types: jpg, jpeg, png"
    

    我不需要定制,因为消息很好,除了“gif”。我想要的是:

    "You are not allowed to upload gif file, allowed types: jpg, jpeg, png"
    

    如何做到这一点?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Mayuresh Srivastava    7 年前

    根据@mizurnix建议的解决方案回答。这对我很有用。

    超越了 check_extension_whitelist! avatar uploader(app/uploaders/avatar_uploader.rb)中的方法,即在avatar_uploader.rb中添加以下代码。

    private
    
      def check_extension_whitelist! new_file
        extension = new_file.extension.to_s
        if extension_whitelist && !whitelisted_extension?(extension)
          raise CarrierWave::IntegrityError, I18n.translate(:"errors.messages.extension_whitelist_error", extension: extension, allowed_types: Array(extension_whitelist).join(", "))
        end
      end
    
      def whitelisted_extension? extension
        downcase_extension = extension.downcase
        Array(extension_whitelist).any? { |item| downcase_extension =~ /\A#{item}\z/i }
      end