Mam trudny zapis relacji jeden-do-wielu w danych embera. Mam relację takiego:Dane Embera zapisujące relację
App.ParameterSet = DS.Model
name: DS.attr("string")
regions: DS.hasMany("App.Region")
App.Region = DS.Model
name: DS.attr("string")
Gdybym miał zrobić coś takiego:
parameterSet = App.ParameterSet.find(5)
@transaction = @get("store").transaction()
@transaction.add(parameterSet)
region1 = App.Region.find(10)
region2 = App.Region.find(11)
parameterSet.set("name", "foo")
parameterSet.get("regions").pushObject(region)
@transaction.commit()
Następnie chciałbym zobaczyć żądania PUT z ładunkiem tak:
api/ParameterSets/5
{parameterSet: {name: "foo", regionIds:[10, 11]}}
, ale zamiast tego otrzymuję:
{parameterSet: {name: "foo"}}
Nie interesuje mnie relacja z powrotem od dziecka do rodzica, ale jeśli dodaję parameterSet: DS.belongsTo("App.ParameterSet")
do modelu App.Region, otrzymam 2 żądania PUT do adresu URL regionów dla dwóch nowych relacji, które tak naprawdę nie są tym, czego chcę.
Sądzę, że jest to relacja wiele do wielu, ale nie jestem pewna, czy jest ona jeszcze obsługiwana, ale jakieś pomysły, jak osiągnąć to, co opisałem? Dzięki
Wielkiego, dzięki, że bardzo pomaga – Charlie
Jest to bardzo pomocne, dzięki! Myślę, że jest to bardzo krótkowzroczne założenie dla danych ember! – KOGI
Jakie jest uzasadnienie dla tej "optymalizacji"? Widzę, że jest to optymalizacja podczas ładowania, ale w jaki sposób pomaga podczas zapisywania? Gdybym chciał dodać 100 obiektów potomnych do obiektu nadrzędnego, musiałbym dodać do każdego dziecka identyfikator nadrzędny i zapisać każde dziecko osobno (100 oddzielnych żądań POST/PUT), podczas gdy ja * mogłem * mieć właśnie dodał wszystkie 100 identyfikatorów do rodzica i zrobił jeden POST/PUT i zostało zrobione. – KOGI