7

En mi archivo de traducción en.yml, que tengo:¿Cómo anulo los mensajes de error genéricos de activerecord en ruby-on-rails?

activerecord: 
    errors: 
    template: 
     header: 
     one: "1 error prohibited this {{model}} from being saved" 
     other: "{{count}} errors prohibited this {{model}} from being saved" 

Cuando se produce un error activerecord/validación durante la sesión en mi solicitud, el mensaje de error:

"1 error prohibido esta sesión de usuario de ser guardado "

se muestra (donde user_session es el modelo que se está usando). Prefiero que diga algo como

"Ha ocurrido un error para evitar que inicie sesión en su cuenta".

¿Cómo anulo el mensaje de error genérico con el específico?

Respuesta

11

Encontré las rutas que sigue Rails (2.3.8) para traducir mensajes de error (con i18n 0.6.0): Además, no olvides cambiar el formato full_messages para que se corresponda con tus mensajes personalizados.

Aquí hay un ejemplo con el modelo "Caballo", que valida el atributo "nombre" (no puede estar en blanco).

En su modelo (app/modelos/horse.rb):

validates_presence_of :name 

En el archivo de la traducción (config/lugares/en.yml):

en: 
    activerecord: 
    errors: 
     models: 
     horse: 
      attributes: 
      name: 
       blank: "Hey, are you the horse with no name?" 
     full_messages: 
     format: "%{message}" 

A continuación se muestra un enlace a la página RoR-guides donde encontré esto. También hay una lista de los mensajes necesarios para cada variante de validación.

La notación y valores predeterminados pueden cambiar con versiones posteriores de los carriles y/o i18n.

0

Debe crear su propio FormBuilder y cambiar su clave de traducción.

+0

Gracias. Tengo la sensación de que hay una manera más fácil de hacerlo agregando entradas adicionales en el archivo de traducción en la sección de modelos y atributos, pero no he encontrado nada que explique claramente cómo hacerlo. activerecord: -> errors: -> models: AND activerecord: -> errors: -> attributes: –

Cuestiones relacionadas