基本 普通、has_manyやbelongs_toアソシエーションというと複数モデル間の1対多または多対多の関係を思い浮かべると思います。 #model User class User < ActiveRecord::Base has_many :posts end #model Post class Post < ActiveRecord::Base belongs_to :user end みたいな感じです。 同一モデル内で定義 考え方は先程と同じです。つまり参照するキーが必要です。 なので、Projectのtree関係を表すとして Projectモデルにparent_idを追加してみることにしましょう。 $rails g migration AddParentidToProject parent_id:integer $rake db:migrate これで準備は完了です。(この時