Ich bin relativ neu zu EmberJS, und ich habe für den größten Teil des Abends versucht, einige hasMany und viele zu vielen Beziehungen in einer neuen App beharren, die ich arbeite.Serialisierung async hasMany Beziehungen
Ich verwende Ember Daten mit ActiveModelAdapter
es meinen Schienen Backend anzuschließen, die ich verwende die folgenden Versionen von Ember und Ember Daten, die ich verwende ActiveModelSerializers
verwendet.
DEBUG: -------------------------------
DEBUG: Ember : 1.6.0-beta.1+canary.d0f5f254
DEBUG: Ember Data : 1.0.0-beta.7+canary.d5562867
DEBUG: Handlebars : 1.1.1
DEBUG: jQuery : 1.10.2
DEBUG: -------------------------------
Das grundlegende Problem, das ich habe, ist, dass, wenn Datensätze zu speichern, wird die Assoziation ids nicht zurück an den Server gesendet werden.
nahm ich einen Tauchgang in die ActiveModelSerializer source, und fand, dass es hasMany Serialisierung
var ActiveModelSerializer = RESTSerializer.extend({ // ...
/**
Does not serialize hasMany relationships by default.
*/
serializeHasMany: Ember.K,
}
Ich habe kommen mit der folgenden rudimentäre Lösung überspringt, die bisher funktioniert, aber ich frage mich, ob es war eine sauberere Lösung, die den Ember-Konventionen und Best Practices folgt.
DS.ActiveModelAdapter.reopen
namespace: 'api/v1'
App.Store = DS.Store.extend
adapter: '-active-model'
App.ApplicationSerializer = DS.ActiveModelSerializer.extend
serializeHasMany: (record, json, relationship) ->
if relationship.options.async
key = relationship.key
data = record.get("data.#{key}")
if data?
json[@keyForRelationship(key, "hasMany")] = data.mapBy(Ember.get(this, "primaryKey"))
return
Verwendet Ihre Lösung, funktioniert gut, ich habe gerade relation.options.async entfernt, was nicht mein Fall ist. Vielleicht ist es an der Zeit, ein Problem in ember-data github zu öffnen? –