rails:1556
From: Kazuhiko <kazuhiko@f...>
Date: Thu, 24 Aug 2006 12:18:26 +0900
Subject: [rails:1556] Re: 自分自身でhas_manyをしたい
かずひこです。 At Thu, 24 Aug 2006 12:01:32 +0900, Fujioka wrote: > ツリー状の組織を表現するテーブルを作っているのですが、 その名も acts_as_tree というのが(標準で)あります。 create_table(:sections) do |t| t.column(:name, :string) t.column(:parent_id, :integer) end みたいにテーブルを定義して、 class Section < ActiveRecord::Base acts_as_tree :order => name end みたいにモデルを定義すれば、 root = Section.create("name" => "root") child1 = root.children.create("name" => "child1") subchild1 = child1.children.create("name" => "subchild1") subchild2 = child1.children.create("name" => "subchild2") とすると、 root \_ child1 \_ subchild1 \_ subchild2 のような構成ができて、 root.parent # => nil child1.parent # => root root.children # => [child1] root.children.first.children.first # => subchild1 のように参照することができます。 詳しくは ActiveRecord::Acts::Tree::ClassMethods のドキュメントをどうぞ。 また、似て非なるものとして acts_as_nested_set というのもあります。 -- かずひこ <http://www.fdiary.net/> 「恋とハックはアジャイルが命!」 -- ML: rails@r... 使い方: http://QuickML.com/
1555 2006-08-24 05:01 [fuj@r... ] 自分自身でhas_manyをしたい -> 1556 2006-08-24 05:18 ┗[kazuhiko@f... ] 1557 2006-08-24 05:41 ┣[fuj@r... ] 1558 2006-08-24 07:57 ┗[fuj@r... ]