我有一个名为 User 的模型,它与 Interests 有多对多的关系。
假设连接表如下所示:
User ID | Interest ID
---------------------
5 | 1
当我编辑此用户的名称(例如)并调用user.save
时,它失败了。
它失败的原因是因为 datamapper (AFAIK) 试图重新保存与兴趣的关系。我得到的错误是:
duplicate key value violates unique constraint "user_interests_pkey"
DETAIL: Key (user_id, interest_id)=(5, 1) already exists.
有没有人经历过这个?有人知道解决方案吗?提前感谢您的帮助。
更新
用户模型看起来像:
class User
include DataMapper::Resource
has n, :interests, :through => Resource, :constraint => :skip
end
而兴趣模型看起来像:
class Interest
include DataMapper::Resource
has n, :users, :through => Resource, :constraint => :skip
end