5

Ho un modello "utente" e un "profilo". L'utente ha una relazione uno a uno con il profilo e "accept_nested_attributes_for profile".Il messaggio di errore personalizzato i18n restituisce l'errore InvalidPluralizationData?

Sto convalidando il profilo con due caselle di controllo, vale a dire che uno degli accordi deve essere accettato prima di essere convalidato.

In ogni caso, voglio personalizzare il messaggio di errore per non accettare una delle scatole così ho aggiunto quanto segue in 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" 

Vedrai che il profilo è nidificato sotto utente - questo è quello di STOP "profilo" di essere messo nella parte anteriore del messaggio di errore (as explained here).

Questo mi dà l'errore:

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 

io non vedo proprio che cosa è t stai cercando di pluralizzare, qualche aiuto?

+0

Yep lo sto usando con una condizione per esempio. validates_acceptance_of: my_terms_and_conditions,: accept => true,: if =>: my_condition – digitalWestie

+0

qual è l'associazione tra utente e profilo? Puoi inserire 'form view snippet'? –

risposta

3

Forse dovrebbe essere

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

piuttosto che

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

?

Ecco come è nella mia app, che è certamente Rails 2 piuttosto che scaglia 3.

In alternativa, cerca di non nidificazione profilo sotto l'utente:

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