![]()
#rails I18n ActiveRecord
La documentation sur comment traduire vos modèles et validations est vraiment super bien faite, mais il y a toujours des cas un peu “sioux” ou il faut juste être au courant sinon on risque de chercher longtemps pour pas grand chose…
Avec des modèles en cascades qui se référencent les uns les autres, le retour des validations peut-être parfois un peu “tricky” pour savoir quoi traduire où…
Si on reprend le schéma suivant :
- class Upshot < ActiveRecord::Base
- belongs_to :owner, :foregin_key => “user_id”, :class_name => “User”
- has_many :clients, :through => :upshotclients, :source => :user
- end
- class Upshotclient< ActiveRecord::Base
- belongs_to :upshot
- belongs_to :user
- validates_presence_of :user
- validates_associated :user
- end
- class User < ActiveRecord::Base
- has_many :upshots
- has_many :upshotclients
- validates_presence_of :email
- validates_format_of :email, :with => Authentication.email_regex
- validates_uniqueness_of :email
- end
Les erreurs de validation retournées lorsque je soumettrai un upshot avec un client dont le user associé n’a pas un email valide sera l’association Client défini dans mon has_many, et non pas son objet User….
Comment alors traduire une association ??
Et bien en fait ActiveRecord considère ça comme un attribut de votre objet, donc vous pouvez le traduire comme tel :
- activerecord:
- upshot:
- client: “le client”
“Tricky”, n’est-il pas ?