如何在模型行中设置唯一属性

时间:2012-10-06 20:56:53

标签: ruby-on-rails model activeadmin

我有像这样的模特竞争者

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。从下拉列表中选择。如何验证行的唯一性? (即,管理员用户不可能有两个或更多等于公司,但他们可能是空的。)

1 个答案:

答案 0 :(得分: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
相关问题