Ember-data разрешает неверную конечную точку API

У меня проблема с получением Ember.js с Ember Data для попадания в конечную точку 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 делают следующее:

POST-запрос к /user/posts

вместо

POST-запрос к /users/1/posts

Кроме того, по какой-то причине полезная нагрузка запроса, показанная инспектором Chrome, показывает, что данные формы, передаваемые в API, выглядят так:

{"пользователь / пост": {"опубликовано": ложь, "созданный_кат": пусто, "пользователь":"1" } }

Тем не менее, я ожидаю, что данные будут переданы следующим образом:

{"post": {"body": "некоторый текст...", "опубликовано":false, "creation_at":null, "user_id":"1" } }

По какой-то причине, он даже не переходит в поле "тело", хотя у меня есть это в форме.

Любая помощь очень ценится!




ОБНОВЛЕНИЕ 1

Когда я посещаю http://localhost:8000/#/users/1/posts, он отправляет запрос GET API /users.json, Должно быть что-то не так с тем, как я настраивал PostsRoute, но я не уверен, как это исправить.




ОБНОВЛЕНИЕ 2

Я обновил свой PostsRoute, чтобы получить JSON без использования Ember Data, которая возвращает записи, но теперь шаблон сообщений не отображается. Мой PostsRoute теперь выглядит так:

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: У объекта # нет метода 'slice'

1 ответ

Поэтому, когда вы создаете / используете 'users/post', вы определяете пространство имен, в котором находится сообщение, а не то, что оно находится под определенной моделью. AKA, он не будет использовать связанную пользовательскую модель для создания вашего URL, он просто будет делать запросы, используя пользователей как часть поста.

Я не совсем уверен, почему тело не прикрепляется к сообщению, вы уверены, что модель включает тело? Вы уверены, что свойство body существует в модели, которую вы отправляете в createRecord?

Кстати, нужно ничего не делать на маршруте, это относится только к контроллерам.

Другие вопросы по тегам