0

我有一个名为 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
4

1 回答 1

1

如果您只想运行代码,user.save请将

begin
  user.save
rescue
  # DO STH MEANINGLESS
end

如果你真的想解决这个问题,你应该更冗长一些。这是一个HABTM协会吗?关联规范也会有所帮助。

于 2012-12-19T12:08:51.153 回答