2017-08-03 4 views
0

Kurz etwas über unsere Struktur. Wir verwenden Ruby on Rails auf der Serverseite mit dem Trailblazer Framework. Auf Kundenseite Ember and Ember Engines.Aktualisieren Sie vorhandene Modelldaten

Jetzt haben wir das Problem, dass einige Modelle im Vater liegen, nämlich die eigentliche Ember App und einige Modelle im Motor. Jetzt haben die Modelle vom Motor immer noch Beziehungen zu Modellen, die in der Vater-App sind. Wenn ich jetzt Daten von diesem Modell aktualisieren will, funktioniert das Motormodell sehr gut, mit den Beziehungen (die im Vater sind) macht er immer ein INSERT und kein UPDATE. Es gibt natürlich einen Fehler, dass der Eintrag bereits existiert.

Jeder hat eine Idee, wie man das Problem löst und das Motormodell und das Vatermodell aktualisiert? Im Ember Store ist alles korrekt verknüpft und die Daten werden auch korrekt in die Relationen verteilt. Auf dem Server kommt folgendes:

Parameters: {"data"=>{"attributes"=>{"patient-number"=>1, "email"=>nil, "employer"=>"", "foreign-doctor"=>"", "family-doctor"=>"", "patient-since"=>"2017-08-02T00:00:00.000Z", "job"=>"", "lab"=>"", "last-therapy"=>"2017-08-02T00:00:00.000Z", "payment-deadline"=>28, "rating"=>1, "recall-type"=>nil, "recommended-by"=>"", "phrophylaxis-user"=>nil, "created-at"=>nil, "updated-at"=>nil, "contact-id"=>nil, "import-id"=>nil}, "relationships"=>{"contact"=>{"data"=>{"type"=>"contacts", "id"=>"1"}}, "customer"=>{"data"=>{"type"=>"customers", "id"=>"1"}}, "patient-insurances"=>{"data"=>[]}, "users"=>{"data"=>[{"type"=>"users", "id"=>"1"}]}, "person"=>{"data"=>{"type"=>"people", "id"=>"1"}}}, "type"=>"patients"}, "id"=>"1", "patient"=>{"data"=>{"attributes"=>{"patient-number"=>1, "email"=>nil, "created-at"=>nil, "updated-at"=>nil}, "relationships"=>{"contact"=>{"data"=>{"type"=>"contacts", "id"=>"1"}}, "person"=>{"data"=>{"type"=>"people", "id"=>"1"}}}, "type"=>"patients"}}} 

Antwort

0

Ich fand die Lösung. In der Operation fehlte dies:

public def set_MODELNAME(options, **) 
    MODELNAME = [MODELNAME].find(options['contract.default'].MODELNAME.id) 
    options['contract.default'].MODELNAME = MODELNAME 
end 
Verwandte Themen