TinyMCE и ActiveAdmin для Rails

Я заново знакомлюсь с Rails, и мне действительно нравится Active Admin. Я хотел бы, чтобы с ним работал tinyMCE для использования в текстовых областях. Однако все инструкции, которые я нахожу, неполны. По какой-то причине я думаю, что мне здесь не хватает чего-то очень простого.

Так, например, я установил tinymce-rails (3.4.9) и следовал инструкциям (https://github.com/spohlenz/tinymce-rails). Однако вот где, я думаю, я потерпел неудачу: на самом деле запустить tinyMCE. Согласно документу, у меня есть два варианта:

  1. используйте помощник ‹% = tinymce%> или ...
  2. инициализируйте его следующим образом tinyMCE.init({ mode: 'textareas', theme: 'advanced' });

Я попытался добавить последний в свой файл active_admin.js, но безрезультатно.

Если бы кто-нибудь мог помочь мне в этом, я был бы очень признателен.


person JP Smith    schedule 02.05.2012    source источник
comment
второй должен работать обычно, тогда js-ошибки возникают?   -  person Thariama    schedule 02.05.2012


Ответы (2)


Я заставил его работать со следующими вещами (помимо установки, описанной в репо)

В admin / my_class.rb:

ActiveAdmin.register MyClass do
  form do |f|
    f.inputs do 
      f.input :body, :input_html => { :class => "tinymce" }
    end
  end
end

В инициализаторах / active_admin.rb:

...
config.register_javascript 'tinymce.js'

Именно поэтому скрипт tinymce.js появился в заголовке админки.

В javascripts / active_admin.js:

//= require active_admin/base
//= require tinymce

$(document).ready(function() {
  tinyMCE.init({
     mode: 'textareas',
     theme: 'advanced'
   });
});

После того, как вы выполнили эти действия, на этом поле ввода (текстовой области) появился полностью работающий редактор.

person mcmaloney    schedule 18.10.2012
comment
Хорошая документация. Работает с rails 3.2.13, active_admin 0.6.0 и tinymce-rails 3.5.8.2. - person scarver2; 07.06.2013
comment
Добавьте editor_selector: 'tinymce' в tinyMCE.init, чтобы только определенные текстовые поля имели редактор WYSIWYG. - person scarver2; 07.06.2013
comment
для вас, у кого есть coffescript вместо чистого javascript, превратите свой tinyMCE.init в кофе с помощью этого инструмента js2.coffee - person Seto; 10.06.2018

Есть ли у ваших входов textarea атрибут class или что-то, к чему может подключиться tinyMCE? Работает ли из консоли javascript (firefox / chrome)? Вы проверили наличие tinymce.js в заголовке (источнике) вашей страницы.

Я заставил его работать с партиалом формы, и мне пришлось дать класс входному элементу, чтобы tinymce мог подключиться к нему.

<%= f.input :literature_nld, :input_html => { :class => 'tinymce', :size => "80x4" } %>

Удачи

person Sjors Branderhorst    schedule 02.05.2012
comment
Спасибо. Ваш ответ вызвал еще одну мысль о том, был ли tinymce.js в заголовке моей страницы. В документации по tinymce-rails было немного неясно по этому поводу. Оказывается, добавив к этому вызову в моем файле active_admin.rb, я смог показать это. Большое спасибо за вашу помощь! - person JP Smith; 03.05.2012
comment
Было бы неплохо, если бы вы приняли мой ответ, я бы просто прокомментировал. - person Sjors Branderhorst; 29.05.2017