【发布时间】:2013-07-17 18:18:05
【问题描述】:
我正在尝试重现 Railscasts 410 示例(称为 Raffler),更改最新版本的设置并符合我的习惯:
- Ember 1.0.0-rc.6
- Rails 4.0.0
- Mongoid 大师 (4.0)
- Haml 4
- 标志 0.3.0
在这个示例项目中,我们创建了一个简单的模型Entry,它调用了一个小的 Rails Rest API。
一切都按预期工作,除了调用 Raffler.Entry.find() 来获取所有条目只加载最后一条记录。
这是我的模型:
Raffler.Entry = DS.Model.extend
name: DS.attr('string')
winner: DS.attr('boolean')
我的商店:
DS.RESTAdapter.configure('plurals', entry: 'entries')
Raffler.Store = DS.Store.extend
revision: 12
adapter: DS.RESTAdapter.create()
当调用Raffler.Entry.find() 时,http://localhost:3000/entries 上有一个 AJAX 请求并返回所有记录(所以我不认为问题出在服务器端):
{"entries":[{"id":{"$oid":"51e5b35b492cd4d286000001"},"name":"Foo","winner":true},{"id":{"$oid":"51e5b35b492cd4d286000002"},"name":"Bar","winner":false},{"id":{"$oid":"51e5b384492cd4d286000003"},"name":"Baz","winner":true}]}
但只有最后一条记录真正加载到模型中。
在 JS 控制台中:
e=Raffler.Entry.find()
e.toArray().length
=> 1
e.objectAt(0).get('name')
=> "Baz" (always the last one)
e.objectAt(1)
=> undefined
【问题讨论】:
-
e.toArray() 的控制台结果是什么?
-
@Matthew Graves:具有单个 Ember 对象的数组:
[Object { id="[object Object]", store=<Raffler.Store:ember330>, _reference={...}, more...}](缩短的 FF 控制台输出)
标签: ruby-on-rails ember.js mongoid ember-data