rails-ckeditor 3.4.1和rails2.3.5使用错误解决办法

 在使用rails-ckeditor 3.4.1时出现错误,上传文件是flash上传,文件上传成功,可以显示的预览图是错误的

必须刷新之后才能看到预览图,如下图:

经过分析rails-ckeditor代码发现在\vendor\plugins\rails-ckeditor\app\controllers\ckeditor_controller.rb的52行有这样一段代码:

@text = params[:CKEditor].blank? ? @record.to_json(:only=>[:id, :type], :methods=>[:url, :content_type, :size, :filename, :format_created_at], :root => "asset") : %Q"<script type='text/javascript'>
        window.parent.CKEDITOR.tools.callFunction(#{params[:CKEditorFuncNum]}, '#{Ckeditor::Utils.escape_single_quotes(@record.url_content)}');
      </script>"

 

通过输出得到 @text值为:

"{\"attachment_file\":{\"content_type\":\"application/msword\",\"url_content\":\"/ckeditor_assets/attachments/18/\\u4e8c\\u671fUI\\u95ee\\u9898\\u6587\\u6863.doc?1289289071\",\"id\":18,\"url_thumb\":\"/javascripts/ckeditor/images/doc.gif\",\"type\":\"Ckeditor::AttachmentFile\",\"size\":206336,\"url\":\"/ckeditor_assets/attachments/18/\\u4e8c\\u671fUI\\u95ee\\u9898\\u6587\\u6863.doc?1289289071\",\"filename\":\"\\u4e8c\\u671fUI\\u95ee\\u9898\\u6587\\u6863.doc\",\"format_created_at\":\"09.11.2010 07:51\"}}"

 

在代码中:root => "asset"

但是输出的root = \"attachment_file\"

可见是to_josn 方法出错

找到C:\ruby\lib\ruby\gems\1.8\gems\activerecord-2.3.5\lib\active_record\serializers\json_serializer.rb文件的82行代码做如下修改:

 hash = { self.class.model_name.element => hash } if include_root_in_json

 

替换为

hash = {options[:root] ||  self.class.model_name.element => hash } if include_root_in_json

 

保存之后重启你的服务。问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值