Ce billet présente quelques astuces sur l'utilisation de mongoid et mongoid_translate.
Les traductions dans mongoid_translate sont des documents « embedded ».
Pour chercher un document avec une traduction :
Tag.where(:'translations.name' => 'Content',
:'translations.language' => :fr).one
Pour trouver un tag à partir de sa traduction, ou en initialiser un nouveau s'il n'existe pas encore :
t = Tag.find_or_initialize_by(:'translations.name' => content)
On peut ensuite créer la traduction comme ceci :
t.translations.new(language: :fr, name: content)
t.save
Voilà, ça permet aussi de parler du projet « mongoid_translate », une gem développée par af83 pour gérer de la traduction de contenus avec mongoid.