2013-04-22 82 views
3

我在Rails 3.2.11/Ruby 1.9.3上使用了ckeditorhttps://github.com/galetahub/ckeditor)gem。Rails ckeditor gem js在Heroku生产上预编译时出错

我已经得到这个JS错误我在生产环境中做rake assets:precompile后(部署到Heroku上)

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

我不知道这是否是相关的,但我已经跟踪误差(使用Chrome的Webdev的工具)是开始一个块:

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

我以为是负责添加粗体,斜体,下划线的插件,以及其他类似的字体样式按钮工具栏。

textarea仍显示没有CKEditor UI。

我使用的是rubygems的最新版本(4.0.4)。

我有这个在我的application.js

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

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

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

+0

你的Gemfile中有require语句吗? – AlexBrand 2013-04-22 11:36:37

+0

对不起,回合。感谢您指出。是的,它应该说,“application.js” – 2013-04-22 15:45:12

回答

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"}%> 
y中

我们的看法。请注意,这是一个SimpleForm输入。

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

希望它有帮助。

+0

谢谢。但我正在使用'ckeditor'宝石。我也尝试过使用'ckeditor-rails'gem,但没有运气 - 仍然得到相同的js错误。 我从此使用过'tinymce-rails'宝石,并且顺利地开箱工作。 – 2013-04-24 09:54:45

+0

@Louis:你自己尝试过吗?看起来我有同样的问题,我的gemfile中有一个普通的'gem'ckeditor'','// = require'这行没有更多,仍然在'production'中,我没有运气。 – 2013-05-20 12:22:45

1

我发现是什么原因造成了这个问题。这是一个旧的uglifier版本。将它从〜> 1.0.3移动到> = 1.0.3(更新到2.1.1)解决了这个问题。