2011-06-28 40 views
2

我正在使用awesome_nested_set gem,並且我已經讀過某處(現在找不到它),您需要做的就是將級別列添加到數據庫,並且它會自動添加級別。awesome_nested_set gem level db列

,如果我跑

Subject.rebuild! 

它將創建水平,但我想,當我創造新的就去做。

我也嘗試過以下,但沒有成功。

before_save do 
    self.level = ancestors.count 
end 

感謝

回答

0

我只是一個類似的問題,嘗試將before_save回調中訪問self_and_ancestors

問題是子級記錄還沒有在數據庫級別創建,但self_and_ancestors(順便說一下,也被ancestors引用)查詢數據庫,期待我們的新子已經創建。 。

Catch-22。

編輯:

這是醜陋的,但作爲一個變通此limiation awesome_nested_set的,這應該作的OP(在父已經存在)工作:

before_save do 
    self.level = self.parent.self_and_ancestors.count 
end