尝试删除struct时出现Ecto约束错误

时间:2016-11-09 00:18:34

标签: database postgresql phoenix-framework ecto

我有一个tblProductSeller模型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. 添加到我的默认变更集,但错误仍在继续。

1 个答案:

答案 0 :(得分:6)

如果没有与Ecto.Changeset.no_assoc_constraint/3相关联的记录,则Ecto有一个约束来检查是否可以删除条目。通过此验证,我得到一个很好的错误,我可以像associated_records are still associated to this entry一样使用。

另一个有用的约束是Ecto.Changeset.foreign_key_constraint/3,这对于保证只有在父数据库中也存在子项时才有用。