0
我的模型定義如下:查找記錄
App.User = DS.Model.extend({
primaryKey: 'username',
username: DS.attr('string'),
name: DS.attr('string')
});
我的自定義適配器圖:
DS.SocketAdapter.map('App.User', {
primaryKey: 'username',
username: DS.attr('string'),
});
我通過鍵入在控制檯上測試這一模型了:
App.User.createRecord({username:"user_1"});
var r = App.User.find("user_1");
console.log(r.serialize());
>> Object {username: null, name: null ..... all null}
但它回退一個「空」對象。還測試過:
App.User.find({username:"user_1"});
但是這是在做一個遠程請求。我讀過Ember Data允許您通過ID以外的屬性查找記錄。
那麼我在告訴Ember數據我做錯了我的定製primaryKey?
感謝您的回覆!我無法將其歸檔!我創建了一個jbin。 http://jsbin.com/olizir/3/edit。以下是輸出:http://jsbin.com/olizir/3。在我的真實代碼中,我沒有實現我的適配器的find()方法(因爲我對做遠程請求不感興趣,只能通過ID查找記錄)。謝謝 – Mattia 2013-05-06 21:44:57
你應該使用'FixturesAdapter',因爲'RESTAdapter'是爲了處理請求,所以它只有在'RESTAdapter'上定義了find()和所有這樣的方法時才起作用。說得通? – intuitivepixel 2013-05-07 18:21:46
請參閱此鏈接:https://github.com/emberjs/data/blob/master/BREAKING_CHANGES.md#revision-12。什麼意思「自定義sideloadAs和**鍵映射**仍然可以配置爲根據需要覆蓋這些默認值」? **鍵映射**代表什麼?他們在談論主鍵?謝謝 – Mattia 2013-05-09 19:42:23