0

プロジェクトの1つでツリー構造を使用する必要があります。このリンクを見つけて使ってみました。私のテーブル構造は次のようになります。

id    
user_id
parent_id
lft
rgt

ルートを作成しようとすると、次のようになります。

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

そして、私は子供を追加しようとします:

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

しかし、この瞬間、私は何度も何度もエラーが発生します。id=12のTreeStructが見つかりませんでした。ツリー構造を持つDBテーブルの内容は次のとおりです。

+----+---------+-----------+------+------+---------------------+---------------------+
| 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のIDが必要なのはなぜですか?私はこれは必要ありませんが...

すべての助けに何百万回も感謝します!私はすでに2日目にこの問題に苦しんでいますが、それでも主な問題を見つけることができません

4

1 に答える 1

1

「ancestry」gem を使用することをお勧めします。これは、ツリー構造のサポートに優れています。先祖のリストをコンマ区切りの文字列で保存するため、ルックアップが非常に効率的になります。

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

https://github.com/stefankroes/ancestry

于 2011-11-30T04:27:39.190 に答える