使用rails_admin时向ckeditor添加插件

时间:2014-05-03 03:00:53

标签: javascript ruby-on-rails ruby-on-rails-4 ckeditor rails-admin

我已经将头撞在墙上几个小时了。也许有人可以帮助我。

我有一个rails应用程序。我使用的是rails_admin gem,版本0.6.2。

按照rails_admin说明,我在几个文本字段上启用了ckeditor,并且它运行良好。

接下来我需要自定义一些工具栏图标,因此我在config.js

中创建了自定义app/assets/javascripts/ckeditor/文件

这很好用,我可以更改工具栏按钮(config.js的示例代码在下面)

CKEDITOR.config.toolbar_Custom = [
  { name: 'document',    items : [ 'Source','NewPage','Preview','-','Templates' ] }
  // other toolbars removed for brevity
];
CKEDITOR.config.toolbar = 'Custom';

现在我想添加一些ckeditor插件 - 特别是codesnippet plugin.

我将插件文件放在app/assets/javascripts/ckeditor/plugins中,并将其包含在内:

CKEDITOR.config.extraPlugins = 'codesnippet'

现在ckeditor没有加载,控制台抱怨 CKEDITOR.editor CKEDITOR.style 未定义。这些错误来自插件js文件,所以我知道它们正在加载,但它们似乎在ckeditor有时间初始化之前被引用?

我尝试用

之类的方式完成配置设置
CKEDITOR.on('instanceReady', function(){
    // initialize config stuff here
});

但这没有任何作用。

认为问题涉及this coffeescript file from rails_admin的第159行,它正在设置编辑器并应用设置。但是对于我的生活,我迷失了,文档只让我感到困惑。任何帮助或提示赞赏。

1 个答案:

答案 0 :(得分:0)

将以下内容添加到config.js的{​​{1}}文件中。

app/assets/javascripts/ckeditor/

从下面的链接下载插件(如zip)。提取它们并放在代码邮箱所需的CKEDITOR.editorConfig = function (config) { config.extraPlugins = 'widget,dialog,codesnippet,widgetselection,lineutils'; }

  1. https://ckeditor.com/cke4/addon/widgetselection
  2. https://ckeditor.com/cke4/addon/lineutils
  3. https://ckeditor.com/cke4/addon/dialog
  4. https://ckeditor.com/cke4/addon/widget
  5. https://ckeditor.com/cke4/addon/codesnippet
  6. 将以下行添加到app/assets/javascripts/ckeditor/plugins

    assets.rb

    为rails_admin启用它,请尝试以下任何特定型号。

    Rails.application.config.assets.precompile += %w( ckeditor/* )