5

Tengo un modelo de "usuario" y un "perfil". El usuario tiene una relación de uno a uno con el perfil y "accepts_nested_attributes_for profile".El mensaje de error personalizado i18n arroja un error InvalidPluralizationData?

Estoy validando el perfil con dos casillas de verificación, es decir, uno de los acuerdos debe aceptarse antes de validarlo.

De todos modos, quiero personalizar el mensaje de error para no aceptar una de las cajas por lo que añade lo siguiente en en.yml

activerecord: 
    attributes: 
    user: 
     profile: 
     terms_and_conditions_a: 
      accepted: "You must accept the terms and conditions to continue" 
     terms_and_conditions_b: 
      accepted: "You must accept the terms and conditions to continue" 

Vas a ver que el perfil está anidado bajo el usuario - esto es sTOP "perfil" de ser puesto en la parte delantera del mensaje de error (as explained here).

Esto me da el error:

I18n::InvalidPluralizationData 
translation data {:terms_and_conditions_a=>{:invalid=>"You must accept the terms and conditions to continue"}} can not be used with :count => 1 

realmente no veo lo que es t tratando de pluralizar, ¿alguna ayuda?

+0

Sí lo estoy usando con una condición p.ej. validates_acceptance_of: my_terms_and_conditions,: accept => true,: if =>: my_condition – digitalWestie

+0

¿cuál es la 'asociación entre el usuario y el perfil'? ¿Puedes poner 'form view snippet'? –

Respuesta

3

Tal vez debería ser

activerecord: 
    errors: 
    models: 
     user: 
     profile: 
      attributes: 
      terms_and_conditions_a: 
       accepted: "You must accept the terms and conditions to continue" 

en lugar de

activerecord: 
    attributes: 
    user: 
     profile: 
     terms_and_conditions_a: 
      accepted: "You must accept the terms and conditions to continue" 

?

Eso es lo que pasa en mi aplicación, que es cierto que los carriles 2 en lugar de los carriles 3.

Alternativamente, intenta no anidan bajo perfil de usuario:

activerecord: 
    errors: 
    models: 
     profile: 
     attributes: 
      terms_and_conditions_a: 
      accepted: "You must accept the terms and conditions to continue" 
Cuestiones relacionadas