私が取り組んでいるRailsアプリケーションにツリーメニュー(simple example of tree menu)を実装したいと思います。私はacts_as_treeまたはAncestryを使用するかどうかはわかりません。 acts_as_treeを使用して簡単なツリーメニューを実装する方が簡単なようですが、Ancestryは一般的によく使用されています。誰にもこれに関する考えはありますか?acts_as_treeとツリーメニューの祖先宝石
答えて
祖先を使用します。 adjacency listを実装するacts_as_treeとは対照的に、materialized path patternを実装するので、より強力なクエリ機能を備えています。
ネストされたセットのように他のオプションもありますが、マテリアライズドパスは通常最も包括的です。
https://communities.bmc.com/communities/docs/DOC-9902
あなたがDBレベル(例えばページ番号付きのツリーグリッド、プリロードあなたが反復メニューおよび表示するためのツリー内の深さに応じてインデント/ DEDENT)で先行順にソートする必要がある場合は、あなたがする必要があります再帰的なクエリ、またはネストされたセットまたはネストされた間隔のようなソート可能なエンコーディングを使用します。 (メモリにソートすることはオプションではありません、それがあることはほとんどない場合それはある。)
https://github.com/collectiveidea/awesome_nested_set
https://github.com/clyfe/acts_as_nested_interval
それぞれは浮き沈みがあります。あなたに合ったものを選んでください。
アドバイスをいただきありがとうございます。私は祖先に着いたと思います。今すぐrake db:migrateが失敗する理由を理解する必要があります。 –
私はこのトピックの詳細を読む:https://www.chiliproject.org/boards/2/topics/314 – PhuongTT
- 1. find_by_name祖先の宝石
- 2. Railsの3 - 祖先宝石方法は
- 3. 祖先宝石「未定義のメソッド」というエラー
- 4. アソシエーションを通して祖先の宝石を使用する
- 5. 祖先宝石で複数の親をオブジェクトに与える
- 6. 祖先宝石を使用してフォーム経由でparent_idを渡す
- 7. ドアキーバーの宝石とノックの宝石
- 8. 祖先の宝石でネストされた投稿を追加しようとしています
- 9. ファクトリーガールズと祖先
- 10. Railsの "ブログ"にコメントを追加します。アドバイス:多形または祖先のような宝石?
- 11. BundlerとHeroku:条件付きの宝石/ 2種類の宝石
- 12. if else文を使ってルビーを反復する...(祖先の宝石に沿って)
- 13. 祖先とrails_admin、ドロップダウン
- 14. 宝石
- 15. パンダの宝石とHerokuの
- 16. Twitterの宝石
- 17. 宝石のパッチ
- 18. ジャガーノートの宝石
- 19. カピストラーノデプロイエラープライベートパブの宝石
- 20. スプレッドシートの宝石
- 21. RJSとDeviseの宝石
- 22. simple_navigationの宝石とレール3.0.9
- 23. サーチャー宝石とActiveRecordの
- 24. Rails 3のプロジェクトフォルダと宝石
- 25. Twitterの宝石と、ArgumentError
- 26. 宝石は宝石を実行しているとき、私は、次の取得インストール宝石
- 27. 関係バンドラと宝石
- 28. 宝石は2秒ごと
- 29. 宝石レール3.2.2
- 30. アクセス `spreadsheet`宝石
acts_as_treeを使った方が簡単なのはなぜですか?モデルには1つのdbフィールドしかないので、祖先を使うことをお勧めします。あなたはこれに興味があるかもしれませんhttp://railscasts.com/episodes/262-trees-with-ancestry – mark
あなたは正しいです。しかし、私はあなたが言及しているレールキャストに従おうとしましたが、[rake db:migrate](http://stackoverflow.com/questions/8828204/ancestry-dbmigrate)で問題が発生しています –
おそらく別の質問をする必要があります。 try bundle db:migrate – mark