2012-03-16 3 views
0

Кажется, проект puny_mce не обновлен для Rails 3. Кто-нибудь поможет мне запустить его? Я хочу иметь очень простой редактор, и мне не нужны все возможности вложения tiny_mce.Как установить редактор puny_mce для Rails 3

Ошибки я получаю:

$ 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' 

Под 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 

Может кто-то объяснить шаги? Или как я могу обновить скрипт установки рейка?

ответ

0

Я должен был сделать это прошлой ночью, и следующий процесс работал. Я не запускал задачу установки рейка, а просто скопировал необходимые ресурсы из каталога плагинов в каталог/assets (в отличие от каталога public/javascripts.

т.е. копировать каталог/поставщика/плагины/puny_mce/public/JavaScripts/punymce к/активов/punymce

Затем отредактируйте файл поставщика/плагины/puny_mce/Библиотека/puny_mce.rb

в нижней части метода include_puny_mce является линия, javascript_include_tag include_array

Это не работает в Rails 3, поскольку javascript_include_tag, похоже, не справляется с массивом файлов для включения.

Я изменил файл, чтобы запустить метод javascript_include_tag несколько раз и вернуть конкатенированный результат. Это все еще не удалось.

Наконец-то я обнаружил, что тег javascript_include возвращал «ActiveSupport :: SafeBuffer» (независимо от того, что я раньше не использовал Rails 3 для этой причины и отсутствия обратной совместимости). Поэтому я просто преобразовал результат строки в один из них, и он сработал.

код, который работает, чтобы заменить:

javascript_include_tag include_array 

с

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 

Я уверен, что есть более элегантный способ, но это изменение, безусловно, получает это работает, но как первый зайдет так безусловно, работал на Rails 3.2.2

Cheers George