2013-10-21 110 views
2

我在我的應用程序中有祖先樹。Rails驗證級別上的唯一性

我想只在同一級別上實現記錄的唯一性。

讓我解釋一下

記錄:

#<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所有記錄)

回答

6

唯一性驗證可以接受scope參數:

validates_uniqueness_of :title, :scope => :ancestry 

它現在將證實我們在具有相同血統值的記錄中獨一無二的標題。

相關問題