解决了Extjs和Rails2.1结合的问题

来源:互联网 发布:淘宝页头背景图尺寸 编辑:程序博客网 时间:2024/05/16 15:37

原创文章,版权归 胡添发(hutianfa@163.com)所有,转载请注明出处:
http://blog.csdn.net/aidisheng/archive/2008/09/02/2868685.aspx

 

熟能生巧这句话一点都不假,昨天研究的Extjs与Rails2.1结合,由于to_json在Rails2.1中发生了变化,导致列表的内容出不来的问题,今天对研究Extjs进一步研究之后,有了一点眉目,刚吃完晚饭就开始坐回了电脑前改写代码验证自己的想法,经过几次的尝试,终于圆满解决了这个问题。

        解决的办法还得从to_json的变化说起,先来对比一下结果:

rails2.02版本的to_json结果:

{"results": 1, "posts": [{"updated_at": "2008/06/09 11:53:16 +0200",
"title": "test", "published": true, "id": 1, "content": "contenu",
"created_at": "2008/06/09 11:53:16 +0200"}]}


而rails2.1版本的to_json结果:

{"posts": [{"post": {"updated_at": "2008-06-09T07:56:46Z", "title":
"test", "published": true, "id": 1, "content": "contenu", "created_at":
"2008-06-09T07:56:46Z"}}], "results": 1}

每个post之前都增加了一个“post”,我猜想to_json可能是从xml中学来的,这样一来,信息的层次感比以前强多了。

那么,要解决这个问题,就需要告诉JsonReader新的Json文档结构,需要修改的代码如下:

new Ext.data.JsonReader({
                            root: 'posts',
                            id: 'id',
                            totalProperty: 'results'
                        }

改为:

new Ext.data.JsonReader({
                            root: 'posts',
                            id: 'postid',
                            totalProperty: 'results'
                        }

这样,Extjs就能正确识别信息了。不过这个方法只能是使用Ext.data.Store自己创建JsonReader的情况,如果使用Ext.data.JsonStore,那就需要等Extjs插件修改默认的JsonReader的代码了。

原创粉丝点击