Подтвердить уникальность ассоциации многие ко многим в Rails - PullRequest
11 голосов
/ 14 сентября 2009

Скажем, у меня есть Проект , который связан со многими ко многим с Tag Я использую от has_many до , поэтому у меня есть отдельная модель соединения.

Как мне создать валидацию, которая проверяет уникальность модели соединения? Теперь у меня есть только

has_many :tags, :through => :taggings, :uniq => true

Но это не действует при сохранении.

Ответы [ 2 ]

15 голосов
/ 03 июля 2010

Я думаю, что вы хотите validates_uniqueness_of :

class Taggings
  belongs_to :tags
  validates_uniqueness_of :tag_id, :scope => :project_id
end

Это то, что я использую, и хорошо работает.

5 голосов
/ 14 сентября 2009

Попробуйте validates_associated .

Я полагаю, что это должно позволить выполнить проверки модели соединения перед сохранением Итак, в вашем случае:

class Project
   has many :tags, :through => :taggings
   validates_associated :taggings
end

class Taggings
   belongs_to :tags

   #your validations here....
end

class Tag
   has_many :taggings
end
...