Ruby 可怕的嵌套集-创建数据库结构时出错
我使用这个插件创建我的树结构。关于我的DB模式,我有一个小问题-我不确定它是否工作良好。 我的DB表如下所示:Ruby 可怕的嵌套集-创建数据库结构时出错,ruby,ruby-on-rails-3,model,tree,nested-sets,Ruby,Ruby On Rails 3,Model,Tree,Nested Sets,我使用这个插件创建我的树结构。关于我的DB模式,我有一个小问题-我不确定它是否工作良好。 我的DB表如下所示: +----+---------+-----------+------+------+---------------------+---------------------+ | id | user_id | parent_id | lft | rgt | created_at | updated_at | +----+---------+----
+----+---------+-----------+------+------+---------------------+---------------------+
| id | user_id | parent_id | lft | rgt | created_at | updated_at |
+----+---------+-----------+------+------+---------------------+---------------------+
| 1 | 2 | NULL | 1 | 2 | 2011-11-25 18:48:14 | 2011-11-25 18:48:14 |
| 2 | 3 | 2 | 3 | 16 | 2011-11-25 18:49:07 | 2011-11-25 18:49:07 |
| 3 | 4 | 2 | 4 | 7 | 2011-11-25 18:50:56 | 2011-11-25 18:50:56 |
| 4 | 5 | 3 | 5 | 6 | 2011-11-25 18:56:37 | 2011-11-25 18:56:37 |
| 5 | 7 | 2 | 8 | 9 | 2011-11-28 08:44:11 | 2011-11-28 08:44:11 |
| 6 | 8 | 2 | 10 | 11 | 2011-11-28 10:56:26 | 2011-11-28 10:56:26 |
| 7 | 9 | 2 | 12 | 13 | 2011-11-28 16:57:54 | 2011-11-28 16:57:54 |
| 8 | 10 | 2 | 14 | 15 | 2011-11-29 14:01:45 | 2011-11-29 14:01:45 |
+----+---------+-----------+------+------+---------------------+---------------------+
我认为根项(ID=1)将自动更新值lft和rgt,但在我的情况下不是。我仍然不知道,我做错了什么
以下是我创建项目的过程:
-正在创建节点(根):
-正在根项目下创建项目:
save_tree = TreeStruct.create!(:user_id => @user.id)
save_tree.move_to_child_of(params[:parent])
在我创建项目的表单中,是隐藏的输入,该输入具有根项目的值(ID)
我的问题-当表中仍然有值lft=1和rgt=2时,我做错了什么?这里的值不应该是1和16
万分感谢您的帮助,我真的很绝望这个问题。我发现我必须运行MyModel.rebuild!在创建它之后。这似乎重做了所有的lft、rgt值等
您似乎还能够在具有子体的类的实例上运行rebuild。文档相当不错,我使用以下备忘单解决了大部分问题:
save_tree = TreeStruct.create!(:user_id => @user.id)
save_tree.move_to_child_of(params[:parent])