2016-11-09 12 views
2

私はUserモデルを持っていますhas_many医療情報と医療情報belongs_toユーザーです。私は記録(医療情報)を関連付けられたUserを削除しようとすると構造体を削除しようとするとエクト制約エラーが発生する

Ectoは私に次のエラーを与える:

** (Ecto.ConstraintError) constraint error when attempting to delete struct: 

    * foreign_key: medical_informations_user_id_fkey 

If you would like to convert this constraint into an error, please 
call foreign_key_constraint/3 in your changeset and define the proper 
constraint name. The changeset has not defined any constraint. 

私は両方のモデルで私のデフォルトのチェンジにforeign_key_constraint/3を追加しようとしましたが、エラーが続きます。

答えて

3

Ectoには、Ecto.Changeset.no_assoc_constraint/3に関連付けられたレコードがない場合にエントリを削除できるかどうかを確認する制約があります。この検証で私はこのような使用できる素晴らしいエラーを得るassociated_records are still associated to this entry

もう1つの有効な制約はEcto.Changeset.foreign_key_constraint/3です。親がデータベースにも存在する場合にのみ子が作成されることを保証するのに便利です。

+0

この問題のある他の人へのリンク:https://hexdocs.pm/ecto/Ecto.Changeset.html – whossname

関連する問題