Подтвердить что ты не робот

Действительно ли данные ember поддерживают вложенные URL-адреса?

У меня есть объект сеанса верхнего уровня, который может содержать много динамиков.

Моя конечная точка REST ish позволяет мне делать все сессии таким образом

/сессии/

Я могу получить все колонки для заданного сеанса, например:

/сессий/1/колонки/

С текущей версией данных ember-данных я вижу, что он пытается найти все динамики с этим URL

/колонки/

Использование модели данных ниже

CodeCamp.Session = DS.Model.extend({
  id: DS.attr('number'),
  name: DS.attr('string'),
  speakers: DS.hasMany('CodeCamp.Speaker',{nested: true})                                                          
});

CodeCamp.Speaker = DS.Model.extend({
  id: DS.attr('number'),
  name: DS.attr('string'),
  session: DS.belongsTo('CodeCamp.Session',{nested: true})
});

Я добавил часть "вложенная: истинная", потому что мне нужны данные ember-data для создания требуемого

/sessions/% @/speakers/

Но этого не произошло -

Я знаю, что могу вручную определить URL-адрес

CodeCamp.Speaker.reopenClass({
  url: 'sessions/%@/speakers/'
});

Но при этом мне нужно будет свернуть собственный метод "buildURL" в базовом адаптере REST, чтобы он выглядел так же, как и этот, и при необходимости добавляет родительский идентификатор (и я бы не сделал этого, если это было возможно)

Имеют ли данные ember-данные что-то подобное из коробки или я буду вынужден написать много кода самостоятельно?

4b9b3361

Ответ 1

{nested: true} еще не является функцией. Запрос на растяжение по-прежнему открыт.

Отмените и используйте адаптер findQuery(), чтобы сделать запрос GET с таким URL-адресом.

Кроме того, если ваш сервер Rails (и, возможно, это работает для других фреймворков), можно сохранить URL-адрес запроса одноуровневым, передав родительский идентификатор в качестве параметра querystring:

/speakers?session_id=1