【问题标题】:awesome_nested_set gem level db columnawesome_nested_set gem 级 db 列
【发布时间】:2011-06-28 06:05:49
【问题描述】:

我正在使用 awesome_nested_set gem,我在某处(现在找不到)读到,您需要做的就是向数据库添加一个级别列,它会自动添加级别。

如果我运行它会创建关卡

Subject.rebuild!

但我希望它在我创建新的时这样做。

我也尝试了以下方法,但没有成功。

before_save do
  self.level = ancestors.count
end

谢谢

【问题讨论】:

    标签: ruby-on-rails-3 gem


    【解决方案1】:

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

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

    第 22 条军规。

    编辑:

    这很难看,但作为一种对 awesome_nested_set 的限制的解决方法,这应该适用于 OP(前提是父级已经存在):

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 2012-07-05
      相关资源
      最近更新 更多