Rails 3 - KendoUI - 无法访问JSON对象 - 未捕获的ReferenceError

时间:2012-02-08 21:41:53

标签: jquery ruby-on-rails ruby-on-rails-3 kendo-ui

我用'用户'模型和'用户'控制器创建了一个简单的Rails 3 JSON api。 api本身工作正常,但是......

我正在尝试使用Kendo UI数据源来填充网格,我遇到了一个问题。

使用Chrome网络工具,我可以看到JSON数据从服务器返回:

[{"user":{"created_at":"2012-02-08T17:33:27Z","first_name":"Angelina","id":1,"last_name":"Jolie","password":"","updated_at":"2012-02-08T17:33:27Z","user_name":""}},{"user":{"created_at":"2012-02-08T17:34:50Z","first_name":"Milla","id":2,"last_name":"Jovovich","password":"","updated_at":"2012-02-08T17:34:50Z","user_name":""}}]

以下是用于创建网格和数据源的Javascript:

$(document).ready(function(){

    var sharableDataSource = new kendo.data.DataSource({
        transport: {
            read: {
                url: "/users",
                dataType: "json"

            }
        }           
    });


    $("#grid").kendoGrid({
        dataSource: sharableDataSource,
            columns: [
            { 
                title: "First Name",
                field:"first_name"
            },

            {   
                title: "Last Name",
                field: "last_name"              
            }]
    });        

});

网格定义似乎有效,因为当网格呈现时,它显示我在网格中指定的“标题”:

enter image description here

但是......正如您所看到的,没有数据出现。 我收到了'first_name'字段的未捕获的ReferenceError:

enter image description here

对可能导致此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

我认为您需要在Rails初始化过程中编辑此设置:

ActiveRecord.Base.include_root_in_json = false

更新:很高兴它有帮助...... :)这是因为默认情况下,Rails使用包含的根元素呈现它的JSON响应。大多数JS库和框架如Kendo,Backbone等都不喜欢这样......