我的应用程序中有祖先树。
我只想在同一级别上实现记录的唯一性。
让我解释一下
记录:
#<Folder id: 1, title: "folder1", ... ancestry: nil>,
#<Folder id: 2, title: "folder2", ... ancestry: "1">,
#<Folder id: 3, title: "folder3", ... ancestry: "1/2">
如果我想创建folder (:title => 'folder2', :ancestry => '1')
它应该引发一个错误title is olready taken
,
但是如果我创建folder (:title => 'folder2', :ancestry => nil or "1/2")
它应该创建新记录。
可能有人有这个问题,可以给出建议或答案
(在祖先方法中@elem.siblings 返回@elem级别上的所有记录)
唯一性验证器可以接受scope
参数:
validates_uniqueness_of :title, :scope => :ancestry
现在,它将验证标题我们在具有相同祖先值的记录中是唯一的。