我试图验证从Parent模型继承并保持其唯一的模型数。
所以我有
User has_many :parents
Parent belongs_to :user
此外,我还使用单表继承,所以:
rails g model Type1Parent --parent=Parent
总体而言我有3种类型,所以Type1Parent,Type2Parent,Type3Parent。
每个用户必须每种类型只有一个,例如
type1parent = user.type1parents.new
type1parent.save #=> OK!
但如果我再尝试这样做
type1parent = user.type1parents.new
type1parent.save #=> Error: User already has a type1parents
但也可以为同一个用户创建 type2parent 。
那么,我如何验证每个用户的每种类型的单一存在?
答案 0 :(得分:1)
将此作用域唯一性验证添加到您的父模型:
validates :type, uniqueness: { scope: :user_id }
同样正如@MrYoshiji所建议的那样,在type, user_id
表格上parents
添加唯一索引