Emberjs + data + rails - 未捕获的TypeError:无法调用未定义的方法'map'

thy*_*ian 6 ruby-on-rails ember.js ember-data

当我尝试使用emberjs + ember数据从rails db加载数据时,我收到此错误

未捕获的TypeError:无法调用未定义的方法'map'

这是coffescript代码:

window.Cosmetics = Ember.Application.create

Cosmetics.store = DS.Store.create
  revision: 4
  adapter: DS.RESTAdapter.create 
    bulkCommit: false

Cosmetics.admin_user = DS.Model.extend({
  name: DS.attr('string')
  email: DS.attr('string')
});

Cosmetics.view = Ember.View.extend
  templateName: 'ember/views/aaa'

Cosmetics.admin_user.reopenClass
  url: 'admin/user'

Cosmetics.store.findAll(Cosmetics.admin_user)
Run Code Online (Sandbox Code Playgroud)

Controller获取正确的JSON数据.我已经尝试从互联网上找到的示例中映射代码,但没有任何帮助.有任何想法吗?我想我做错了.在此先感谢您的帮助.

tvo*_*von 3

ember-data 期望 findAll 结果嵌套在模型的复数形式下:

ember-data 期待什么:

{
    "users": [
        {
            "activated": null, 
            "created_at": "2012-05-14T19:35:44Z", 
            "email": "john@doe.com", 
            "id": 1, 
            "name": "john doe", 
            "updated_at": "2012-05-15T20:23:06Z"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

在你的例子中它得到了什么:

[
    {
        "activated": null, 
        "created_at": "2012-05-14T19:35:44Z", 
        "email": "john@doe.com", 
        "id": 1, 
        "name": "john doe", 
        "updated_at": "2012-05-15T20:23:06Z"
    }
]
Run Code Online (Sandbox Code Playgroud)

具体来说,该错误来自 ember 获取 JSON 响应并在“users”键下的所有内容上运行“map”,在您的情况下该键不存在,因此在“undefined”上调用“map”。