我在两个模型之间有一个相当普遍的多对多关系:用户和兴趣。
当我迁移我的数据库时,会创建一个 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 上使用 datamapper 和 postgresql 数据库。有没有人遇到同样的问题?
最佳答案
您应该确定它是否是更新以及它是否试图更改(设置)字段 user_id、interest_id。很多时候这是因为 WHERE 子句没有考虑主键字段。另一种可能性是已经存在的 key (user_id, interest_id)=(1, 2) 是一个孤立数据,如果是这样你应该确保你有一些 :constraint => :destroy
启用关系。
关于ruby-on-rails-3 - 使用 PostgreSQL 数据库更新 Datamapper 中的多对多关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10385109/