2010-07-10 11 views
3

J'ai une application Rails en cours d'exécution sur Rails 2.3.9. Il fonctionne bien avec rubis 1.8.7. Je le teste avec ruby ​​1.9.2-head dès maintenant.Ruby 1.9, Rails 2.3.9 et caractères Unicode dans les vues de base de données et d'erb, toujours un pas?

L'application se charge correctement jusqu'à ce que j'essaie de charger une page qui repose sur une chaîne unicode. Puis-je obtenir l'erreur de codage infâme:

ActionView::TemplateError (incompatible character encodings: UTF-8 and ASCII-8BIT) …

Il semble que le problème est que je reçois des chaînes de la base de données ASCII-8BIT.

Je sais que Rails 3 fonctionne avec ruby ​​1.9 et unicode très bien. Je me demande si une solution a été rétroportée à 2.3.

Alors, y a-t-il un moyen de faire fonctionner les applications rails Unicode 2.3.9 sous Ruby 1.9?

Répondre

3

Alors je suis allé de l'avant et a écrit un plugin qui fixe les deux problèmes sous-jacents qui ont été à l'origine des problèmes d'encodage:

  • modèles ActiveRecord
  • Rails intégré dans les aides

Voir UnicodeOverride plugin on GitHub.

1

Si vous utilisez mysql, utilisez ceci à la place de la gemme mysql http://github.com/tmtm/ruby-mysql. Laissez "mysql" comme votre adaptateur de base de données dans database.yml.

Nous exécutons ruby ​​1.9.2-rc1 avec les rails 2.3.8 et cela a résolu le problème de l'encodage de caractères incompatible.

+0

Cool. Je suis déjà allé de l'avant et j'ai écrit le plugin que je mentionne dans ma réponse. Si vous décidez de l'essayer, laissez des commentaires sur github. – kch