3

我在 Rails 3.2.11 / Ruby 1.9.3 上使用ckeditor( https://github.com/galetahub/ckeditor ) gem。

rake assets:precompile在生产环境(部署到 Heroku)之后,我一直收到这个 JS 错误

Uncaught TypeError: Object #<Object> has no method 'apply' 

我不知道它是否相关,但我已经将错误(使用 Chrome 的 webdev 工具)追踪到一个开始的块:

CKEDITOR.plugins.add("basicstyles", ...)

我假设它是负责将粗体、斜体、下划线和其他此类字体样式按钮添加到工具栏的插件。

textarea 在没有 CKEditor UI 的情况下仍然显示。

我正在使用 ruby​​gems 的最新版本(4.0.4)。

我有这个application.js

//= require 'ckeditor/init'
//= require 'ckeditor/config'

我有一个自定义配置文件,app/assets/ckeditor/config.js并且有两个自定义插件app/assets/ckeditor/plugins/

我也在本地使用它进行了测试,但RAILS_ENV=production也无法正常工作。

4

2 回答 2

1

我找到了导致问题的原因。这是一个旧的uglifier版本。将它从 ~> 1.0.3 移动到 >= 1.0.3(更新到 2.1.1)解决了这个问题。

于 2013-05-20T21:50:40.743 回答
0

几件事可能会有所帮助

这些//= require行需要进入你的application.js文件,你Gemfile应该只有gem 'ckeditor'.

它也应该是:

app/assets/javascripts/ckeditor/config.jsapp/assets/javascripts/ckeditor/plugins

而不是

app/assets/ckeditor/config.jsapp/assets/ckeditor/plugins

最后你可以使用

<%= f.input :content, :input_html => {:class => 'ckeditor', :rows => "10"}%>

在你看来。请注意,这是一个 SimpleForm 输入。

我使用了ckeditor-rails gem,对我来说一切都很顺利。

希望能帮助到你。

于 2013-04-22T11:45:11.890 回答