2017-08-03 58 views
0

簡要介紹一下我們的結構。我們在Trailblazer框架的服務器端使用Ruby on Rails。在客戶端Ember和Ember引擎。更新現有模型數據

現在我們遇到了一些模型躺在父親身上的問題,即實際的Ember應用和引擎中的一些模型。現在,引擎中的模型仍然與父應用中的模型有關係。如果我現在想更新這個模型的數據,引擎模型運行得很好,關係(在父親中)他總是進行INSERT和不更新。當然,該條目已經存在,這是錯誤的。

ActiveRecord::RecordNotUnique - PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "contacts_pkey" DETAIL: Key (id)=(1) already exists.

任何人都有一個想法如何解決問題並更新引擎模型和父模型?在Ember Store中,所有內容都正確鏈接,數據也正確地分發到關係中。在服務器上出現以下內容:

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"}}} 

回答

0

我找到了解決方案。在手術中失蹤:

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