FRESH → the Hive

Fresh from the Hive is Studio Melipone's weblog about visual delights, startup love and much more.

As opposed to whatever SEO stuff you should pay attention to this blog is run in a complete natural non sense. Enjoy!

Why don't you grab our RSS?

 

#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 :
  1. class Upshot < ActiveRecord::Base
  2.  
  3. belongs_to :owner, :foregin_key => “user_id”, :class_name => “User”
  4. has_many :clients, :through => :upshotclients, :source => :user
  5.  
  6. end
  7.  
  8. class Upshotclient< ActiveRecord::Base
  9.  
  10. belongs_to :upshot
  11. belongs_to :user
  12. validates_presence_of :user
  13. validates_associated :user
  14.  
  15. end
  16.  
  17.  
  18. class User < ActiveRecord::Base
  19.  
  20. has_many :upshots
  21. has_many :upshotclients
  22.  
  23. validates_presence_of :email
  24. validates_format_of :email, :with => Authentication.email_regex
  25. validates_uniqueness_of :email
  26.  
  27. 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 :
  1. activerecord:
  2.     upshot:
  3.         client: “le client”

“Tricky”, n’est-il pas ?