2012-03-20 15 views
10

Tengo una aplicación de carga de imágenes ejecutándose en carrierwave que restringe al usuario de cargar solo imágenes de extensiones deseadas 'jpg, jpeg, png' He puesto en práctica la validación de carrierwave en mi Uploader define comoConfiguración de mensaje de error personalizado con CarrierWave

def extension_white_list 
    %w(jpg jpeg png) 
end 

Ahora cualquiera que trate de cargar una imagen que tiene de extensión diferente de la extensión deseada (mencione anteriormente) dará lugar a errores de validación

quiero personalizar el mensaje de error de validación

derecho N ow mensaje de error se presenta como

You are not allowed to upload "" files, allowed types: ["jpg","jpeg","png"] 

puede ayudar a cualquiera que encontré este link donde los chicos mencionan cómo lograr esto

pero algunos problemas

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 

favor Proporcionar a contestar en el plazo de CarrierWave y, por favor, no me pidas que escriba un conjunto de validación por separado para la extensión que coincide

Respuesta

2

define un par de valores clave en en.yml

en: 
    errors: 
    messages: 
     extension_white_list_error: 'My Custom Message' 

Si ha cambiado con las versiones recientes. Así que trate de la siguiente manera si la respuesta anterior no funciona:

en: 
    errors: 
    messages: 
     extension_whitelist_error: 'My Custom Message' 

y dejar que haga el resto CarrierWave

+0

hi @Viren i probar su respuesta, pero no trabajo para mí :(i crear una nueva pregunta aquí: http://stackoverflow.com/questions/19068821/custom-error-message-for -carrierwave-dont-work, ¿alguna idea, por favor? uso los raíles 4 – medBo

1

por alguna razón mi ActiveModel no incluía el módulo de validación de ca rrierwave al llamar al mount_uploader. Tuve que hacer include CarrierWave::Validations::ActiveModel en mi modelo para obtener el validador de integridad.

Cuestiones relacionadas