Acts_as_tree: Kreise in Bäumen verhindern

ja hallo erstmal,…

ich stehe gerade mal lieder wieder wie der Ochs vor’m Berg:
In meiner Anwendung kann der User eine Baumstruktur erstellen, indem er
den
parent auswählt.
Probleme gibt’s jedoch, wenn der User Kreise baut.

z.B. Objekte der Form
{id => 1, parent_id => 1}
oder
{id => 1, parent_id => 2}
{id => 2, parent_id => 3}
{id => 4, parent_id => 5}
{id => 5, parent_id => 6}
anlegt.

Ich könnte natürlich jetzt eine ziemlich aufwendige validate-Methode
schreiben, die den ganzen Baum traversiert, Besuchte Knoten / Blätter
makiert
und dann irgendwann zu einem Ziel kommt - aber damit würde ich irgendwie das
Rat neu erfinden…

Gibt’s so eine Validierung schon irgendwo?
(Praktisch gesehen kann es natürlich Sinn machen, ein Generations-Feld in der
DB zu führen um nicht den vollst. Baum traversieren zu müssen … .aber afaik
kann acts_as_tree das nicht).

Any hints?
Danke,
Alles Gute
Jan

Also wenn’s keine gerichteten Kanten sind dann könntest du
die Knotenindizes sortiert abspeichern und einen unique index
über beide Werte legen.

Sowas kriegt sogar noch ich als Mathe-dropout hin :slight_smile:
Den Fall 1-1 musst aber manuell abfangen.

ciao, tom

Am 03.02.2008 um 23:12 schrieb Jan L.:

oder
irgendwie das
Rat neu erfinden…

Gibt’s so eine Validierung schon irgendwo?
(Praktisch gesehen kann es natürlich Sinn machen, ein Generations-
Feld in der
DB zu führen um nicht den vollst. Baum traversieren zu
müssen … .aber afaik
kann acts_as_tree das nicht).


Thomas R. “TomK32” Koll || http://tomk32.de || http://ananasblau.com
(NEW)
just a geek trying to change the world
Skype: TomK32 || Mail: [email protected]