Carrierwave扩展白名单错误消息



我在Rails 5中使用carrierwave。在我的扩展白名单中,允许的类型有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"

如何做到这一点?

基于@mizurnix建议的解决方案进行回答。它对我有效。

重写化身上传器(app/uploloaders/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

相关内容

最新更新