Как установить редактор puny_mce для Rails 3 - PullRequest
0 голосов
/ 16 марта 2012

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

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

$ 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

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

1 Ответ

0 голосов
/ 21 марта 2012

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

т.е. скопируйте каталог / vendor / plugins / puny_mce / public / javascripts / punymce в / assets / punymce

Затем отредактируйте файл vendor / plugins / puny_mce / lib / 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 по такой причине и из-за отсутствия обратной совместимости). Поэтому я просто преобразовал результат String в один из них, и он сработал.

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

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

Приветствие George

...