STERFIELD
開発ナレッジ2016.08.24

Railsで階層構造を簡単に作ってみる

何をやるか

Railsのgemと言うモジュールの中に「awesome_nested_set」と言う
ツリー構造を自動生成してくれる機能があります。

カテゴリなど動的に変動し
親子関係の生じるものに使い勝手が良さそうなので導入例を記します。

何が出来るか

  • 動的にツリー構造の上下関係を作成出来る
  • 親子関係を動的に追加、編集出来る
  • 親または子、及び同列の兄弟の要素を取得出来る
  • 要素自体の深さ(階層)を調べられる (rootは0)
  • 葉要素(ツリーの末端)を取得出来る

導入方法

Gemfileに以下を追記。

追記したgemをインストール

ツリー構造を持たせるスキーマを適当に作成しておく

上記で作成したスキーマにツリー構造を持たせる

作成されたmigrateファイルを以下のように編集し、拡張させる

Categoryのモデルにツリー構造である宣言を以下一行付け足す

migrationをスキーマに反映

ルートドメイン/categories
にアクセスすると以下のように初期表示される
スクリーンショット 2016-08-23 15.54.16

色々ノードを作成してみる

今回はビューとコントローラの連携が間に合わずコンソール(コマンド)にて割愛.


スクリーンショット 2016-08-23 16.09.47

WRITER

スターフィールド編集部

この著者の記事を見る

CONTACT

記事の内容について
相談したい方へ

実際の進め方は、状況を伺ってからご提案します。

2営業日以内にご返信します
資料ダウンロード無料相談に申し込む