Ho attributi con convalida speciale dove uso la clausola del messaggio per visualizzare un messaggio speciale solo per quella convalida. Ecco un esempio:Ruby on Rails i18n - Desidera tradurre messaggi personalizzati nei modelli
validates :email, presence: true, length: { maximum: 60 },
format: { with: valid_email_regex, message: "is not a valid email address format." },
uniqueness: { case_sensitive: false }
Vorrei tradurre il messaggio qui ma non sono sicuro di come farlo.
Ho visto esempi in cui scrivono qualcosa di simile a questo: message: t ("some_value_here"). Non sono sicuro della designazione. Ho provato qualcosa di simile a questo messaggio: t (: bad_email). Ho fatto quanto segue nel mio file yaml solo per provare qualcosa.
activemodel:
errors:
bad_email: "is not a valid email address format."
Quando ho provato ad accedere alla mia applicazione Rails ho ottenuto il seguente errore:
ActionView::Template::Error (undefined method `t' for #<Class:0x007fefc1b709e0>)
Ho provato anche questo nel mio file YAML:
activemodel:
errors:
user:
bad_email: "is not a valid email address format."
Sto ricercando questo off e per tutto il giorno. Tutto quello che posso trovare è di sostituire gli errori di errore incorporati come vuoto o vuoto. C'è un modo per me di avere degli errori di errore personalizzati e sostituirli nel modello? A questo punto non riesco a far funzionare il t come codificato. La mia speranza è che il problema sia come ho impostato il mio file yaml. Ho visto diverse versioni di come impostare questo. Non sono sicuro se dovrei metterlo sotto activemodel o activerecord. Ho assunto attivemodel poiché è qui che il messaggio personalizzato è quello che voglio tradurre.
Qualsiasi aiuto sarebbe apprezzato. Questo è l'ultimo pezzo che ho bisogno di capire prima di lanciare la mia prima traduzione dell'applicazione.
UPDATE 2013/07/29 19:30 CDT
bgates mi ha dato un buon inizio con il modo di impostare il mio file di modello per ricevere il messaggio personalizzato nel file YAML. Tuttavia ho finito per dover eseguire la seguente configurazione nel mio file yaml per trovare i messaggi personalizzati.
activerecord:
errors:
models:
user:
attributes:
bio:
no_links: "cannot contain email addresses or website links (URLs)."
email:
bad_email: "is not a valid email address format."
username:
bad_username: "can only contain numbers and letters. No special characters or spaces."
impostare il mio modello e YAML. Ho ricevuto una traduzione mancante per activerecord.errors.models.user.attributes.email.bad_email. Ho inserito la modifica che ho apportato nel mio file yaml nella mia descrizione. Funziona bene. GRAZIE TANTO PER AIUTARMI INIZIAMO. –
Ho dovuto usare 'activemodel' invece di' activerecord' come chiave di primo livello. Maggiori dettagli sono disponibili in Errori [fonte] (https://github.com/rails/rails/blob/ccbc98e37dcc11ad5150b93dcee8008bc94aa83a/activemodel/lib/active_model/errors.rb#L465-L472). – Nick
Bel trucco, grazie –