是否可以将tinyMCE与rails_admin一起使用?

时间:2011-07-19 19:13:27

标签: ruby-on-rails ruby tinymce rails-admin

我非常喜欢rails_admin,但我的客户不喜欢CKEditor。这真的是WYSIWYG在这个宝石上的唯一选择吗?有没有办法将tinyMCE与rails_admin一起使用?

4 个答案:

答案 0 :(得分:5)

在RailsAdmin(在Rails 3.1上)努力让CKEditor正常工作之后,我使用了tinymce: 它运作良好,可在几分钟内完成:

在你的gemfile中添加:

gem 'tinymce-rails'

加上你在rails_admin.js.erb中包含一行:

require_asset 'tinymce-jquery'

您可能需要将整个文件(rails_admin.js.erb)从gem复制到/assets/javascripts/rails_admin/ 在你这样做之前。

最后,您还需要在视图文件中添加一些jquery app/views/rails_admin/main/edit.html.hamlapp/views/rails_admin/main/new.html.haml

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

这会将Wysiwyg添加到所有文本区域字段。

答案 1 :(得分:1)

WYSIWYG编辑器通常只使用JavaScript功能覆盖HTML文本区域元素。所以任何编辑都应该在理论上工作。您可以将代码中的引用替换为tinyMCE,确保已正确安装所有文件,然后将tinyMCE设置为使用文本区域控件的ID。

对于后端编程应该没有什么区别,客户端接口用于在文本区域中创建HTML。

答案 2 :(得分:1)

伟大的andistuder, 我建议你的解决方案的修改版本。

将gem中的rails_admin.js.erb复制到项目路径中的/assets/javascripts/rails_admin/。 添加以下行:

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

所有这些都会像魅力一样!

答案 3 :(得分:0)

我以稍微不同的方式实现了这个目的,这对于:

  • 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 结尾的所有文字区域,即我存储的内容,以及我如何命名我的领域