Настройка настраиваемого сообщения об ошибке с помощью CarrierWave
У меня есть приложение для загрузки изображений, работающее на носителе, которое ограничивает загрузку изображения только с помощью желаемых расширений "jpg, jpeg, png". Я применил проверку для несущей в моем загрузчике как
def extension_white_list
%w(jpg jpeg png)
end
Теперь любой, кто пытается загрузить изображение с расширением, отличным от желаемого расширения (упоминание выше), приведет к ошибкам проверки
Я хочу настроить сообщение об ошибке проверки
В настоящий момент сообщение об ошибке представлено как
You are not allowed to upload "" files, allowed types: ["jpg","jpeg","png"]
Может кто-нибудь помочь, я нашел ссылку , где ребята упоминают, как достичь этого.
но это проблема
1. I18n support I dont require to translate the error message using I18n
2. The 'Key' to be used I not sure which key to used in YAML for
not matching extension whitelist error message (e.g) carrierwave_processing_error key if error is for processing failure
Пожалуйста, предоставьте мне ответ в терминах CarrierWave и, пожалуйста, не просите меня написать отдельный набор для проверки соответствия для соответствия
Ответы
Ответ 1
определите пару значений ключа в en.yml
en:
errors:
messages:
extension_white_list_error: 'My Custom Message'
Если изменилось с последними версиями. Поэтому попробуйте, как показано ниже, если выше ответ не работает:
en:
errors:
messages:
extension_whitelist_error: 'My Custom Message'
и пусть CarrierWave сделает остальные
Ответ 2
На самом деле это:
en:
errors:
messages:
extension_white_list_error: "You are not allowed to upload %{extension} files, allowed types: %{allowed_types}"
Источник:
https://github.com/jnicklas/carrierwave/blob/master/lib/carrierwave/locale/en.yml
Ответ 3
Если кто-то заканчивается здесь в 2016 году + и задается вопросом, почему правильные ответы, найденные на этой странице или где-либо еще в Интернете, не работают, из-за этого это может быть связано. По крайней мере, это было в моем случае:
Переименовать extension_white_list
~ > extension_whitelist
Легкая вещь, которую можно пропустить при копировании решений.
https://github.com/carrierwaveuploader/carrierwave/commit/06003a5044190f93d07d958b6ca9fd6f6f8fbdb2
Ответ 4
по какой-то причине мой ActiveModel не включил модуль валидации из несущей волны при вызове mount_uploader
. Мне пришлось сделать include CarrierWave::Validations::ActiveModel
в моей модели, чтобы получить проверку целостности.