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です。ドロップダウン リストから選択します。行の一意性を検証するにはどうすればよいですか? (つまり、管理者ユーザーに対して 2 つ以上の同等の会社を持つことはできませんが、それらを空にすることはできます)。

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 に答える