2013-02-12 15 views
7

Obecnie uderzam w ścianę z Ember Data, ładując niektóre dane, które mogą istnieć lub nie. Jeśli rekord nie istnieje, aplikacja internetowa powinna go utworzyć.Jak zaimplementować "znajdź lub utwórz" za pomocą Ember Data

Prosty przypadek użycia: dokumentowanie spisu. Jeśli artykuł nie istnieje, należy dodać nowy artykuł. Jeśli istnieje, wówczas pracownik może natychmiast skorzystać z tych informacji.

Podejrzewam, że metoda find() adaptera jest źródłem tego problemu. Nie może obsłużyć błędu 404 nie znalezionego i podanie wyniku pustego również nie działa.

Prawdopodobnie przeoczyłem coś trywialnego, ponieważ "znajdowanie lub tworzenie" jest dość regularnym wzorem. Proszę o pomoc ...

+0

Utknąłem tu. Próbuję to zrobić na trasie, wydaje się, że gdy findRecord zawiedzie, utknę w .catch() bez możliwości utworzenia rekordu lub zwrócenia go. @ Peter, jakieś pomysły? – Matthew

Odpowiedz

1

zobaczyć #296 Już raport o błędzie do tego

+0

Dzięki, wydaje się, że jest to jeden z tematów, które wymagają trochę więcej miłości. – user1998398

4

Zobacz this issue, albo oto rozwiązanie:

findOrCreate: (type, properties)-> 
    @store.find(type, properties.id).then null, (reason)=> 
    if reason.status == 404 
     record = @store.recordForId(type, properties.id) 
     record.loadedData() 
     record.setProperties(properties) 
     record.save() 
    else 
     throw reason 
Powiązane problemy