5

我真的很喜欢rails_admin,但我的客户不喜欢 CKEditor。这真的是这个宝石上所见即所得的唯一选择吗?有什么方法可以将tinyMCE与 rails_admin 一起使用?

4

4 回答 4

5

在努力让 CKEditor 在 RailsAdmin 中正常工作(在 Rails 3.1 上)之后,我使用了 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' 
     }); 
   }); 

这会将所见即所得添加到所有文本区域字段。

于 2011-12-06T14:00:56.590 回答
1

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

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

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

一切都会像魅力一样工作!

于 2012-03-23T14:52:54.160 回答
1

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

使用哪个客户端界面在文本区域中创建 HTML 不应该对后端编程产生影响。

于 2011-07-19T21:15:04.177 回答
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/sophlenz/tinymce-rails

  • //= require tinymce-jquery:不需要红宝石插值,我喜欢使用清单文件

风俗:

  • 我需要运行两次初始化,到目前为止一切都很好
  • 选择器textarea[name$='_html]'将转换字段以 结尾的所有文本区域_html,这就是我存储的内容,这就是我命名我的字段的方式
于 2016-08-17T11:01:48.150 回答