Installer TinyMCE sur un projet Ruby on Rails

Mise en place

  1. Ajouter gem 'tinymce-rails' au Gemfile
  2. Si votre application n’est pas accessible à la racine du domaine, ajouter la ligne suivante dans conf/environments/development.rb : config.tinymce.base = "/chemin_vers/assets/tinymce"
  3. Puis dans le fichier assets/javascripts/application.js ajouter la ligne : //= require tinymce
  4. Créer un fichier config/tinymce.yml (exemple ci-dessous)
  5. Placer la classe tinymce sur les textarea souhaités (modifiable via le paramètre selector dans le fichier tinymce.yml)
  6. Ajouter en première ligne de votre vue <%= tinymce :application %>

Cette dernière étape va insérer dans la page HTML le code JavaScript d’initialisation de TinyMCE.

Exemple de fichier de configuration tinymce.yml :

Ajout dynamique en JavaScript

La plupart des solutions proposées sur les sites spécialisés consistent à détruire/recréer l’instance TinyMCE, car il n’est pas possible de retirer/ajouter une classe au sélecteur utilisé, ni n’actualiser les éléments trouvés par le sélecteur à l’initialisation.

On peut en revanche activer TinyMCE sur un textarea avec son id :

L’autre solution consiste à utiliser une méthode non documentée de la gem tinymce-rails, qui fournit le code d’initialisation sans balises script.
On retire alors la ligne : <%= tinymce :application %>
Puis on ajoute le code JavaScript suivant :

Il ne reste plus qu’à appeler la fonction actualiser_tinymce() quand bon vous semble !

Dépannage

Si TinyMCE n’apparait pas, ajouter la ligne suivante dans votre vue :

En cas de problèmes, il est conseillé de désactiver turbolinks.

Une réflexion au sujet de « Installer TinyMCE sur un projet Ruby on Rails »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.