Rails で階層構造になっているテーブルに自分自身への関連を設定する
- POST
テーブル構成例 [Nodesテーブル] 最上位のノード以外は親ノードを持っている
id name parent_id 1 parrent_node null 2 child_node_1 1 3 child_node_2 1 4 child_node_1_1 2 5 child_node_1_2 2 6 child_node_2_1 3 7 child_node_2_2 3 確認環境 ruby: ruby 2.5.3 rails: rails 5.2.2 実際のコード class Node < ApplicationRecord has_many :children, class_name: "Node", foreign_key: "parrent_id" belongs_to :parrent, class_name: "Node", optional: true # rails5 から default が require になっているため `optional: true` を指定しないと `nil` での保存が不可 end class CreateNodes < ActiveRecord::Migration[5.