validationRails中多对多关联的唯一性

假设我有Project ,与Tag有多对多关联。 我正在使用has_many,所以我有单独的连接模型。

如何创建validation,检查连接模型的唯一性? 现在我只有

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

但这不会在保存时validation。

尝试validates_associated 。

我相信,这应该允许在保存之前运行连接模型validation。 所以在你的情况下:

 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 

我想你想要的是validates_uniqueness_of :

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

这就是我正在使用的,并且效果很好。