2014-12-30 5 views
1

У меня есть модель User с hasMany Reminders.Несколько сериализаторов для одной модели

Когда создается User, я хочу, чтобы встраиваемый reminders. Когда он обновляется, я не хочу, чтобы его напоминания были встроены. Как я могу это сделать?

Моя стратегия заключалась в создании пользовательских new-user-serializer, которые имели DS.EmbeddedRecordsMixin и

reminders: { embedded: 'always' } 

и использовать это в моем UserAdapter сек createRecord метод, но я не мог заставить его работать.

+0

Что вы в конечном итоге сделали? – andorov

ответ

0

Это не идеальный, но вы можете это сделать -

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

UserSerializer = ApplicationSerializer.extend DS.EmbeddedRecordsMixin, 

    attrs: 
     reminders: {} 

    serialize: (snapshot, options) -> 
     if snapshot.attr('embedRemindersFlag') 
      @attrs.reminders.embedded = 'always' 
     @_super(snapshot, options) 

`export default UserSerializer` 

embedRemindersFlag должен быть атрибутом модели так снимок улавливает его, но я отдельно реализован transient вариант, который предотвращает атрибут от того, отправляется на сервер.

embedRemindersFlag: DS.attr 'string', {defaultValue: false, transient: true} 
Смежные вопросы