0

我在使用 Ember Data 获取 Ember.js 以访问嵌套资源 API 端点时遇到问题。这是我的代码:

https://gist.github.com/feliksg/7470254

这是我正在使用的:

DEBUG: ------------------------------- ember.js:3224
DEBUG: Ember      : 1.2.0-beta.3 ember.js:3224
DEBUG: Ember Data : 1.0.0-beta.2 ember.js:3224
DEBUG: Handlebars : 1.0.0 ember.js:3224
DEBUG: jQuery     : 2.0.3 ember.js:3224
DEBUG: -------------------------------

I'm also using Ember Appkit as the base for this project.

基本上问题是当我尝试提交新帖子时,ember 数据会执行以下操作:

对 /user/posts 的 POST 请求

代替

对 /users/1/posts 的 POST 请求

此外,由于某种原因,chrome 检查器显示的请求有效负载显示传递给 API 的表单数据如下所示:

{“用户/帖子”:{“已发布”:false,“created_at”:null,“用户”:“1”}}

但是,我希望数据像这样传递:

{"post": { "body":"some text...", "published":false, "created_at":null, "user_id":"1" } }

因此,出于某种原因,即使我在表单中有它,它甚至也没有传入“body”字段。

任何帮助是极大的赞赏!




更新 1

当我访问时http://localhost:8000/#/users/1/posts,它会发送一个 GET API 请求到/users.json。我设置 PostsRou​​te 的方式一定有问题,但我不确定如何解决。




更新 2

我已经更新了我的 PostsRou​​te 以获取 JSON,而不使用返回记录的 Ember 数据,但现在帖子模板不呈现。我的 PostsRou​​te 现在看起来像这样:

PostsRoute = Ember.Route.extend
  model: (params) ->
    user = @modelFor('user')
    userId = user.get('id')
    return $.getJSON('http://localhost:5000/api/v1/users/' + userId + '/posts.json')

我还收到以下错误:

加载路由时出错:TypeError: Object # has no method 'slice'

4

1 回答 1

0

因此,当您创建/使用“用户/帖子”时,您定义的是帖子所在的命名空间,而不是它位于特定模型下。AKA,它不会使用关联的用户模型来构建您的 url,它只会使用用户作为帖子的一部分发出请求。

我不完全肯定为什么身体没有附在柱子上,你确定模型包括身体吗?您确定要发送到 createRecord 的模型上存在 body 属性吗?

顺便说一句,需要在路线上不做任何事情,它只适用于控制器。

于 2013-11-14T17:58:18.223 回答