我用'用户'模型和'用户'控制器创建了一个简单的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"
}]
});
});
网格定义似乎有效,因为当网格呈现时,它显示我在网格中指定的“标题”:
但是......正如您所看到的,没有数据出现。 我收到了'first_name'字段的未捕获的ReferenceError:
对可能导致此问题的任何想法?
答案 0 :(得分:1)
我认为您需要在Rails初始化过程中编辑此设置:
ActiveRecord.Base.include_root_in_json = false
更新:很高兴它有帮助...... :)这是因为默认情况下,Rails使用包含的根元素呈现它的JSON响应。大多数JS库和框架如Kendo,Backbone等都不喜欢这样......