Как преобразовать все записи из вложенного набора в реальное дерево HTML
м, используяawesome_nested_set
плагин в моем проекте Rails. У меня есть две модели, которые выглядят так (упрощенно):
class Customer < ActiveRecord::Base
has_many :categories
end
class Category < ActiveRecord::Base
belongs_to :customer
# Columns in the categories table: lft, rgt and parent_id
acts_as_nested_set :scope => :customer_id
validates_presence_of :name
# Further validations...
end
Дерево в базе данных построено как ожидалось. Все значения,parent_id
lft
а такжеrgt
верны. Дерево имеет несколько корневых узлов (что, конечно, разрешено вawesome_nested_set
).
Теперь я хочу отобразить все категории данного клиента в правильно отсортированной древовидной структуре: например, вложенной теги. Это быЭто не слишком сложно, но мне нужно, чтобы оно было эффективным (чем меньше SQL запросов, тем лучше).
Обновить: Выяснилось, что можно рассчитать количество дочерних элементов для любого данного узла в дереве без дальнейших запросов SQL:number_of_children = (node.rgt - node.lft - 1)/2
, Это нене решить проблему, но она может оказаться полезной.