Можно ли использовать tinyMCE с rails_admin? - PullRequest
5 голосов
/ 19 июля 2011

Мне действительно нравится rails_admin , но мои клиенты не любят CKEditor.Это действительно единственный вариант для WYSIWYG на этом драгоценном камне?Есть ли способ использовать tinyMCE с rails_admin?

Ответы [ 4 ]

5 голосов
/ 06 декабря 2011

после попытки заставить CKEditor работать правильно в RailsAdmin (в Rails 3.1), я использовал tinymce: Работает хорошо и выполняется за считанные минуты:

в вашем гемфайле добавьте:

gem 'tinymce-rails'

плюс вы добавляете строку в rails_admin.js.erb:

require_asset 'tinymce-jquery'

вам может понадобиться скопировать весь файл (rails_admin.js.erb) из драгоценного камня в /assets/javascripts/rails_admin/ прежде чем сделать это.

наконец, вам также нужно добавить jquery к файлам просмотра
app/views/rails_admin/main/edit.html.haml и app/views/rails_admin/main/new.html.haml

 :javascript 
   jQuery(function() { 
     jQuery('textarea').tinymce({ 
       theme: 'advanced' 
     }); 
   }); 

Это добавит Wysiwyg ко всем полям текстовой области.

1 голос
/ 23 марта 2012

Великий андистудер, Я предлагаю модифицированную версию вашего решения.

Скопируйте rails_admin.js.erb из драгоценного камня в /assets/javascripts/rails_admin/ в пути вашего проекта. Добавьте следующую строку:

...
require_asset 'tinymce-jquery'
%>
jQuery(function() {
     jQuery('textarea').tinymce({
       theme: 'advanced'
     });
});

И все будет работать как шарм!

1 голос
/ 20 июля 2011

WYSIWYG-редакторы обычно просто накладывают элемент текстовой области HTML с функциональностью JavaScript. Так что любой редактор должен работать в теории. Вы можете заменить ссылки в коде на tinyMCE, убедиться, что все файлы установлены правильно, а затем настроить tinyMCE на использование идентификатора элемента управления текстовой области.

Для серверного программирования не должно иметь значения, какой интерфейс на стороне клиента используется для создания HTML в текстовой области.

0 голосов
/ 17 августа 2016

Я добился этого немного другим способом, который работал для:

  • rails_admin (0.8.1)
  • tinymce-rails (4.4.1)

Реализация:

Gemfile

gem 'tinymce-rails'

app/assets/javascripts/rails_admin/custom/ui.js

//= require tinymce-jquery

var admin = {
  initTinyMce: function() { tinyMCE.init({ selector: "textarea[name$='_html]'" }) }
}

$(function() {
  admin.initTinyMce();

  $(document).on('rails_admin.dom_ready', function() {
    admin.initTinyMce();
  });
});

Объяснение

https://github.com/sferik/rails_admin/wiki/Theming-and-customization

  • Предлагает ui.js местоположение
  • Предлагает использовать rails_admin.dom_ready

https://github.com/spohlenz/tinymce-rails

  • //= require tinymce-jquery: не требуется рубиновой интерполяции, и мне нравится использовать файлы манифеста

Пользовательские:

  • Мне нужно было дважды выполнить инициализацию, пока все хорошо
  • Селектор textarea[name$='_html]' преобразует все текстовые области, где поле заканчивается _html, это то, что я храню, вот как я называю свои поля
...