Подтвердить уникальность объединения многих и многих в Rails
Скажем, у меня Проект, который во многих отношениях ассоциируется с тегом. Я использую has_many, поэтому у меня есть отдельная модель соединения.
Как создать проверку, которая проверяет уникальность модели соединения? Теперь у меня есть только
has_many :tags, :through => :taggings, :uniq => true
Но это не подтверждается при сохранении.
Ответы
Ответ 1
Попробуйте 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
Ответ 2
Я думаю, что вы хотите validates_uniqueness_of:
class Taggings
belongs_to :tags
validates_uniqueness_of :tag_id, :scope => :project_id
end
Это то, что я использую, и хорошо работает.