2013-04-12 64 views
0

我對ember很新,目前正在研究一個由sinatra api支持的(非常)輕量級的ember應用程序。我有一些問題,將我的api提供的JSON映射到實際的餘燼對象中。每當我嘗試使用此數據呈現模板時,我都會收到「未捕獲錯誤:斷言失敗:您的服務器使用鍵0返回散列,但您沒有映射它」Sinatra api的Ember數據映射問題

這是我的API的JSON格式:

[{"sha":"c1133d9ec33"},{"sha":"2b2d4dd4590"}.....] 

我的我的灰燼代碼片段低於:

App.Store = DS.Store.extend({ 
    LOG_TRANSITIONS: true, 
    revision: 12, 
}); 

App.Router.map(function(){ 
    this.resource('commits', function(){ 
    this.route('commits', {path: '/:sha'}); 
    }); 
}); 

//COMMITS 
App.CommitsRoute = Ember.Route.extend({ 
    model: function(){ 
    return App.Commit.find(); //pulls all commts at /commits 
    } 
}); 

//COMMIT 
App.CommitRoute = Ember.Route.extend({ 
    model: function(params){ 
    return App.Commit.find(params.sha); 
    } 
}); 

App.Commit = DS.Model.extend({ 
    sha: DS.attr('string'), 
    image_url: function() { 
    return 'http://localhost:9393/commits' + this.get('sha'); 
    }.property('sha') 
}); 

任何瞭解爲什麼這是怎麼回事?

回答

0

Ember Data期望您的API以指定的根返回。

你需要更新你的API與根

{"commits": [{"sha":"c1133d9ec33"},{"sha":"2b2d4dd4590"}.....]}

返回JSON