Rails 3, MySQL, древовидная структура - PullRequest
0 голосов
/ 30 ноября 2011

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

id    
user_id
parent_id
lft
rgt

Когда я пытаюсь создать корень, я сделаю это:

save_tree = TreeStruct.create!(:user_id => @user.id)

И затем я попытаюсь добавить childern:

  save_tree = TreeStruct.create!(:user_id => @user.id)
  save_tree.move_to_child_of(params[:parent])

Но в этот момент я снова и снова получаю сообщение об ошибке Не удалось найти TreeStruct с id = 12 .Содержание моей таблицы БД с древовидной структурой здесь:

+----+---------+-----------+------+------+---------------------+---------------------+
| id | user_id | parent_id | lft  | rgt  | created_at          | updated_at          |
+----+---------+-----------+------+------+---------------------+---------------------+
|  1 |      12 |      NULL |    1 |    2 | 2011-11-30 04:09:41 | 2011-11-30 04:09:41 |
+----+---------+-----------+------+------+---------------------+---------------------+

Может ли кто-нибудь помочь мне, пожалуйста, что я все еще делаю неправильно?Я не могу найти правильный способ использовать этот драгоценный камень ... Зачем нужен идентификатор со значением 12?Я думаю, что это не нужно ...

Миллион раз спасибо за любую помощь!Я борюсь с этой проблемой уже второй день и до сих пор не могу найти основную проблему

1 Ответ

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

Я бы порекомендовал использовать камень "предков" - он отлично поддерживает древовидные структуры. Он хранит список предков в строке через запятую, что делает поиск очень эффективным.

http://railscasts.com/episodes/262-trees-with-ancestry

https://github.com/stefankroes/ancestry

...