载波扩展白名单错误消息

时间:2018-07-17 07:24:13

标签: ruby-on-rails 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 个答案:

答案 0 :(得分:0)

根据@mizurnix建议的解决方案进行回答。它对我有用。

覆盖头像上传器(app / uploaders / avatar_uploader.rb)中的check_extension_whitelist!方法,即在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