Как создать запись в ember.js, выбрасывая необходимые данные в ее отношения? - PullRequest
0 голосов
/ 15 октября 2019

Пожалуйста, помогите мне. У меня есть две модели, которые foo и bar модели. Я пытался создать запись на конечной точке /foos, используя POST /foos. Однако для сообщения POST /foos требуется relationships.bar.data.id=1,2,3. Пожалуйста, смотрите мой код ниже для /components/foo-bar.js. У меня вопрос, как создать запись foo и объявить эти идентификаторы для ее отношения?

/components/foo-bar.js

  foo.setProperties({
    bar: [1213,1231]
  });


 /models/foo.js
 import DS from 'ember-data';

  export default DS.Model.extend({
    bar:  DS.belongsTo('bar', { async: true }),
  });

  /models/bar.js
  import DS from 'ember-data';

  export default DS.Model.extend({
    foos:  DS.hasMany('foo', { async: true }),
  });

1 Ответ

1 голос
/ 16 октября 2019

Ваша модель Foo использует belongsTo, что указывает на то, что она может быть связана с одним bar. Вы бы сохранили эту строку как

/components/foo-bar.js
  let bar = this.store.createRecord('bar', {
    id: 1213
  });
  foo.setProperties({
    bar: bar
  });

. Если вы хотите установить одну foo как относящуюся ко многим bar моделям, вы должны использовать hasMany и установить ее следующим образом:

/components/foo-bar.js
  let bar1 = this.store.createRecord('bar', {
    id: 1213
  });
  let bar2 = this.store.createRecord('bar', {
    id: 3456
  });
  foo.setProperties({
    bars: [bar1, bar2]
  });

В любом случае вы должны установить фактическую модель bar на foo, а не только ID.

...