与独特夫妻有着很多关系

时间:2012-03-05 12:12:56

标签: sql ruby-on-rails ruby model-view-controller join

我无法在我的应用中使用uniqness夫妇...

我有用户女巫可以链接到一些联系人。 我使用关系表来做我的链接(女巫也有一个级别属性 - 对于不同级别的关系)

所以我有用户,联系人和关系。 我的问题是,情侣contact_id和user_id必须是uniq(它们只能链接一次)。

contact.rb

  

has_many:relations,:dependent => :破坏

     

has_many:users,:through => :relations,:uniq =>真

user.rb

  

has_many:relations,:dependent => :破坏

     

has_many:contacts,:through => :relations,:uniq =>真

relation.rb

  

belongs_to:user

     

belongs_to:联系

我不知道我是否必须使用foreign_key或其他什么,我只需要一些简单的东西:)

欢呼

2 个答案:

答案 0 :(得分:1)

您可以在唯一性验证中使用:scope选项。像validates_uniqueness_of :contact, :scope => :user这样的东西意味着对于给定的用户,不会有重复的联系人。因此,如果您将每个属性限定为另一个属性,我认为它会产生您想要的结果。可能有更好的方法(我显然不知道)。

答案 1 :(得分:1)

class Relation < ActiveRecord::Base
      belongs_to :user
      belongs_to :contact
      validates_uniqueness_of :contact_id, :scope => :user_id

    end