【问题标题】:has_many relationship with uniqness coupleshas_many 与 uniqness 夫妇的关系
【发布时间】:2012-03-22 21:53:16
【问题描述】:

我的应用程序中的用户 uniqness 夫妇遇到了麻烦...

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

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

联系人.rb

has_many :relations, :dependent => :destroy

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

用户.rb

has_many :relations, :dependent => :destroy

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

relation.rb

belongs_to :user

belongs_to :contact

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

干杯

【问题讨论】:

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


    【解决方案1】:
    class Relation < ActiveRecord::Base
          belongs_to :user
          belongs_to :contact
          validates_uniqueness_of :contact_id, :scope => :user_id
    
        end
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的,对不起。我不经常使用它,忘记了你必须提到实际的密钥。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多