Динамический primaryKey на ember сериализаторе - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь динамически установить primaryKey на угольник.Возможно ли это?

Вот что я могу получить от сервера в ответ

account: {iban: "ibanValue", currency : "currencyValue"} or {bban: "bbanValue"}

Код Ember:

import DS from 'ember-data';
import ApplicationSerializer from './application';

const {
  EmbeddedRecordsMixin,
} = DS;

export default ApplicationSerializer.extend(EmbeddedRecordsMixin, {
  primaryKey: 'iban'
});

Я установил iban в качестве первичного ключано это также может быть bban.Как я могу установить один из них в качестве первичного ключа при необходимости?

1 Ответ

0 голосов
/ 24 января 2019

Ember data - это фреймворк, и у всех фреймворков есть свои правила. Это разработано для обработки данных и поэтому накладывает некоторую структуру на вашу информацию. Одно из этих правил заключается в том, что все сущности (модели) должны иметь свойство ID. Это действительно хорошая практика для всех информационных систем. Тем не менее, вы должны решить, что вы хотите использовать в качестве идентификатора, и если по каким-то очень странным причинам у вас есть различные свойства, которые могут выступать в качестве идентификатора, лучший способ решить это - обработать его на стороне сервера. В свои данные добавьте новое свойство ID, и перед возвратом данных из вашего оставшегося API вы можете решить, что вы хотите использовать в качестве идентификатора для конкретной записи, и явно сделать это, скопировав его значение в свойство id. Таким образом, у данных ember всегда будет свой идентификатор.

...