2012-03-16 1 views
0

Il semble que le projet puny_mce n'ait pas été mis à jour pour Rails 3. Quelqu'un m'aiderait à le faire tourner? Je veux avoir un éditeur très simple, et je n'ai pas besoin de toutes les fonctionnalités de attachment de tiny_mce.Comment installer l'éditeur puny_mce pour Rails 3

L'erreur que je reçois est:

$ rails plugin install git://github.com/imanel/puny_mce.git 
$ rake puny_mce:install 
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /data/rails/tracker/Rakefile:7) 
rake aborted! 
Don't know how to build task 'puny_mce:install' 

Sous vendor/plugins/puny_mce:

./init.rb <-- ActionView::Base.send :include, PunyMCE 
./lib/puny_mce.rb <-- module PunyMCE 
./public/javascripts <-- all the js/css/images/html etc 
./tasks/puny_mce.rake <-- the rake installer script 

Quelqu'un peut-il expliquer les étapes? Ou comment je peux mettre à jour le script d'installation rake pour cela?

Répondre

0

J'ai dû faire cela hier soir et le processus suivant a fonctionné. Je n'ai pas exécuté la tâche de rake d'installation mais j'ai simplement copié les assets nécessaires du répertoire plugin vers le répertoire/assets (par opposition au répertoire public/javascripts)

ie copier le répertoire/vendor/plugins/puny_mce/public/JavaScripts/punymce à/assets/punymce

Vous pouvez alors modifier le fournisseur de fichiers/plugins/puny_mce/lib/puny_mce.rb

au bas de la méthode include_puny_mce est la ligne; javascript_include_tag include_array

Cela ne fonctionne pas dans Rails 3 car javascript_include_tag ne semble pas faire face à un tableau de fichiers à inclure.

J'ai modifié le fichier pour exécuter plusieurs fois la méthode javascript_include_tag et renvoyer le résultat concaténé. Cela a encore échoué. Finalement, j'ai découvert que tag javascript_include retournait un "ActiveSupport :: SafeBuffer" (quoi qu'il en soit, je n'ai pas utilisé Rails 3 auparavant pour ce genre de raison et manque de compatibilité ascendante). J'ai donc simplement converti le résultat String en un de ceux-ci et cela a fonctionné.

Le code qui fonctionne est de remplacer:

javascript_include_tag include_array 

avec

tags=Array.new 
include_array.each do |a| 
    tags.push(javascript_include_tag(a)) 
end 
tag =tags.join(" ") 

t=ActiveSupport::SafeBuffer.new(tag) 
return t 

Je suis sûr qu'il ya une façon plus élégante, mais ce changement obtient certainement travailler mais comme un premier aller dans cette certainement travaillé sur Rails 3.2.2

Cheers George

Questions connexes