我在两个模型之间有很多关系:用户和兴趣。
当我迁移数据库时,会创建一个interest_users表,其中包含两列:user_id和interest_id。
创建用户记录很好,链接表中的行可以很好地创建。但是,当我更新记录时,我得到以下内容:
ERROR: duplicate key value violates unique constraint "interest_users_pkey"
DETAIL: Key (user_id, interest_id)=(1, 2) already exists.
这意味着不会创建新的用户兴趣链接。而且我似乎无法删除链接。
我在rails 3上使用带有postgresql数据库的datamapper。还有其他人有同样的问题吗?
答案 0 :(得分:1)
你应该确定它是否是UPDATE以及它是否正在尝试更改(设置)字段user_id,interest_id。很多时候这是因为WHERE子句没有考虑主键字段。另一种可能性是已存在的密钥(user_id,interest_id)=(1,2)是孤儿数据,如果是这样,您应该确保在关系中启用了一些:constraint => :destroy
。