Удивительный вложенный набор - как я могу получить утверждение любого поддерева? - PullRequest
0 голосов
/ 23 ноября 2011

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

Может кто-нибудь помочь мне, пожалуйста, с этой проблемой? Я нашел на GitHub этот цикл для утверждения пунктов:

Category.each_with_level(Category.root.self_and_descendants) do |category, level|
  ...
end

Но я до сих пор не знаю, как его использовать ... Я буду рад за каждый намек!

Большое спасибо

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Вы можете пройтись по всем категориям и посчитать предметы на уровне 1.

В консоли Rails попробуйте следующее:

count = 0
Category.each_with_level(Category.all) do |account, level|
    count += 1 if level == 1
end
puts count

А для распечатки предметов вы можете попробовать это:

Category.each_with_level(Category.all) do |account, level|
    puts "#{level} - #{category.name}"
end
0 голосов
/ 23 июля 2016

Если вы добавите необязательное поле depth, вы можете получить результаты следующим образом:

count = Category.where(depth: 1).count
...