导轨验证了水平上的唯一性



我的应用程序中有祖先树。

我只想在同一级别上实现记录的唯一性。

让我解释一下

记录:

 #<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

现在,它将验证标题我们在具有相同祖先值的记录中是唯一的。

相关内容

  • 没有找到相关文章

最新更新