我有以下型号:
User.rb
class User < ActiveRecord::Base
has_many :lists, dependent: :destroy
has_many :words, through: :lists
end
List.rb
class List < ActiveRecord::Base
belongs_to :user
has_many :words, dependent: :delete_all
end
Word.rb
class Word < ActiveRecord::Base
belongs_to :list
validates :title, uniqueness: {scope: :title}, presence: true
end
Words模型中的uniqueness属性通过仅限制所有列表的一个唯一单词(例如List(1)和List(2)不能具有任何相同的单词)来工作。
是否有办法限制每个列表的唯一性范围(例如,List(1)可以与List(2)具有相同的单词,但没有单个列表可以具有相同的单词。
答案 0 :(得分:1)
在Word
中,尝试validates_uniqueness_of :title, scope: :list_id
。
这应该要求标题在属于同一列表的单词子集中是唯一的。