awesome_nested_set столбец уровня базы данных - PullRequest
2 голосов
/ 28 июня 2011

Я использую гем awesome_nested_set и где-то прочитал (сейчас не могу его найти), что все, что вам нужно сделать, это добавить столбец уровня в базу данных, и он автоматически добавит уровень.

Это создаст уровень, если я запусту

Subject.rebuild!

Но я хочу, чтобы это делалось при создании новых.

Я тоже попробовал следующее безуспешно.

before_save do
  self.level = ancestors.count
end

Спасибо

1 Ответ

0 голосов
/ 08 мая 2012

У меня просто похожая проблема, я пытаюсь получить доступ к self_and_ancestors в before_save обратном вызове.

Проблема в том, что дочерняя запись еще не была создана на уровне БД, но self_and_ancestors (на которую, кстати, также ссылается ancestors) запрашивает БД, ожидая, что наш новый дочерний элемент уже был создан ...

Уловка-22.

EDIT:

Это некрасиво, но в качестве обходного пути для этого ограничения awesome_nested_set это должно работать для OP (при условии, что родитель уже существует):

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