读书人

rails-ckeditor 3.4.1和rails2.3.5使用

发布时间: 2012-12-21 12:03:50 作者: rapoo

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

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

必须刷新之后才能看到预览图,如下图:
rails-ckeditor 3.4.1和rails2.3.5使用异常解决方法

经过分析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

?

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

读书人网 >网络基础

热点推荐