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 pensée sur “Installer TinyMCE sur un projet Ruby on Rails”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.