`
a420144030
  • 浏览: 84272 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 

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

  • 大小: 26.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics