Так что у меня (как я думаю) общая проблема с Ember-данными. Мне интересно, как правильно настроить адаптер для адаптации к следующей ситуации.Субресурсы с emberjs + ember-data
Притворись У меня есть два объекта: Post
и Tag
Вызывать App.Post.find()
возвращает все сообщения GET
ИНГ api.com/posts
, App.Post.find(1)
находится на api.com/posts/1
. Это хорошо.
App.Tag.find()
вернет все теги, доступные по api.com/tags
. App.Tag.find(1)
вернет соответствующий тег по правильному URL-адресу. Также хорошо.
Если я создаю новые сообщения через App.Post.createRecord({...})
Это будет POST
по правильному адресу. То же самое касается создания Tags
. Пока все денди.
Tags
на Post
встроены, потому что они «включены» в этот пост.
App.Adapter.map("App.Post", {
tags: {embedded: 'always'}
});
Во время загрузки данные Ember все делают правильно, и я все еще очень счастлив.
Так что моя проблема связана с добавлением Tag
в Post
. Я хотел бы указать PUT
или POST
объект тега на api.com/posts/1/tags
, где сервер будет выполнять все действия на стороне сервера.
В настоящее время
Ember-данные, с множеством
{embedded: 'always'}
конфигурации, пошлетPUT
кapi.com/posts/1
со всемиPost
объектом (с новым объектомTag
в комплекте) в качестве строковой строки JSON.Без набора
{embedded: 'always'}
конфигурации, Эмбер-данные будут пытатьсяPUT
объект тегаapi.com/tags
и отправит вTag
объекта с параметромpost_id
поэтому на стороне сервера может сделать все на стороне сервера вещи.
Я бы предпочел не делать 1, потому что мой сервер не настроен таким образом. Я бы предпочел не делать 2, потому что PUT/POST/GET
s на api.com/tags
действительно должен быть для части управления тегами моего приложения и не применять теги к сообщениям. Другим примером такого поведения является Github v3 API for Labels & Issues.
Кто-нибудь знает, как справиться с этим с помощью данных ember? Спасибо!
Имея ту же самую проблему, о которой мы рассуждали по этому поводу, похоже, мало смысла, поскольку Ember RESTFul, нет? – andreimpop
Эй @andreimpop Я закончил с использованием встроенного: «load», нашего собственного ajax для передачи на сервер и вручную управлял машиной состояний ember-data. Все это очень полезно - я планирую один повторить его, когда это станет правдой: http://emberjs.com/blog/2013/03/22/stabilizing-ember-data.html –