0

我有一个像这样的模型竞争对手

class Competitor < ActiveRecord::Base
  belongs_to :admin_user
  has_many :companies
  attr_accessible :admin_user_id, :c1, :c2, :c3, :c4, :c5
  validates :admin_user_id, :presence => true
  validates_uniqueness_of :admin_user_id, :message => "This user has yet a competitors list"

end

C1, c2,.. 是公司的 id。从下拉列表中选择。如何验证行的唯一性?(即管理员用户不可能有两个或多个相等的公司,但它们可以是空的)。

4

1 回答 1

1

您可以编写自己的验证方法来强制执行此操作。

class Competitor < ActiveRecord::Base
  belongs_to :admin_user
  has_many :companies
  attr_accessible :admin_user_id, :c1, :c2, :c3, :c4, :c5
  validates :admin_user_id, :presence => true
  validates_uniqueness_of :admin_user_id, :message => "This user has yet a competitors list"

  validate :check_companies

  def check_companies
    #[do your checks]
  end

end
于 2012-10-06T22:47:11.153 回答