awesome_nested_set gem level db列

时间:2011-06-28 06:05:49

标签: ruby-on-rails-3 gem

我正在使用awesome_nested_set gem并且我已经在某处找到了(现在找不到),你需要做的就是在数据库中添加一个级别列,它会自动添加级别。

如果我运行

,它将创建关卡
Subject.rebuild!

但我想在创建新的时候这样做。

我也试过以下但没有成功。

before_save do
  self.level = ancestors.count
end

由于

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,尝试在self_and_ancestors回调中访问before_save

问题是尚未在数据库级别创建子记录,但是self_and_ancestors(顺便提一句,也由ancestors引用)查询数据库,期待我们的新孩子已经创建了......

捕捉-22。

编辑:

这很丑陋,但作为awesome_nested_set这种限制的解决方法,这应该适用于OP(如果父级已经存在):

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