【发布时间】:2013-06-25 15:21:20
【问题描述】:
我正在使用 ember rc3 和 ember-data 12 (sha e324f0e)(基本上是指南中推荐的文件)。我有 2 个模型设置如下:
App.User = DS.Model.extend({
username: DS.attr('string'),
playerType: DS.attr('string'),
cars: DS.hasMany('App.Car')
})
App.Car = DS.Model.extend({
name: DS.attr('string'),
thumb: DS.attr('string'),
user: DS.belongsTo('App.User')
})
返回的json是
{
"cars": [
{
"id": "50ace47234fa7557403e7f02",
"name": "Dodge Charger SRT8",
"thumb": "/static/images/carthumbs/18331.png",
"user_id": "502a754b34fa75280c000a7e"
},
{
"id": "508668cc34fa753b78784ca2",
"name": "BMW M3 Coup\u00e9",
"thumb": "/static/images/carthumbs/23250.png",
"user_id": "502a754b34fa75280c000a7e"
},
{
"id": "50c7545334fa750ab8cb3ac2",
"name": "BMW Z4 M Coup\u00e9",
"thumb": "/static/images/carthumbs/7618.png",
"user_id": "502a754b34fa75280c000a7e"
},
{
"id": "50adf64c34fa750bb036121e",
"name": "2013 Ford Shelby GT500\u2122",
"thumb": "/static/images/carthumbs/24824.png",
"user_id": "502a754b34fa75280c000a7e"
}
],
"user": {
"id": "502a754b34fa75280c000a7e",
"car_ids": [
"50ace47234fa7557403e7f02",
"508668cc34fa753b78784ca2",
"50c7545334fa750ab8cb3ac2",
"50adf64c34fa750bb036121e"
],
"player_type": "Standard Player",
"username": "WillMckenzie"
}
}
如果我调用 App.User.find("502a754b34fa75280c000a7e"),一切似乎都可以正常加载,但是当我尝试访问用户的汽车属性时,它会触发对汽车 api 路由的第二个 http 请求。我的理解是这不应该是必要的,如果我将 id 更改为基本整数,则不需要。当我使用 Mongo 作为我的数据库时,我的 id 必须采用这种字符串格式。
关于我做错了什么有什么建议吗?
干杯 会
【问题讨论】:
-
我可以建议您同时更新 ember 和 ember-data 吗?
-
我尝试使用最新版本的 ember 和 ember-data,但遇到了其他问题。我想我需要更新我的代码以使用最新版本的 API,但他们还没有列出重大更改。您知道有效的特定版本吗?明天再试一次。
-
我会尝试使用 ember rc5 和 ember-data 13(您不再需要定义商店的 VERSION。
-
好的,我已经尝试了您建议的版本以及 ember 和 ember-data 的最新版本,但我仍然遇到同样的问题。使用整数 id 可以正常工作,但是一旦我将其切换为使用 Mongo 样式的字符串 id,它就不想知道了。
-
进行了更多挖掘并尝试通过 ember 数据跟踪流量,结果发现我列出了一个不在返回汽车列表中的汽车 ID。他们的抓法略有不同,我显然在那里的记录很差。这意味着它总是认为需要重新加载该记录,因此会继续请求。显然,当我伪造整数 id 时,它掩盖了这一点。抱歉,感谢大家的帮助!
标签: javascript mongodb ember.js ember-data