単一テーブル継承 (Single Table Inheritance) の上手な扱い方
Railsの単一テーブル継承 (Single Table Inheritance) を使うと、ActiveRecordではtypeカラムがnilでないオブジェクトのクラスはtypeを元に判定されます。
単一テーブル継承 (Single Table Inheritance) を使うには、テーブル定義時にtypeというカラムを定義します。
-
class CreatePeople <ActiveRecord::Migration
-
def self.up
-
create_table :people do |t|
-
t.column :name, :string
-
:
-
t.column :type, :string
-
end
-
end
-
-
def self.down
-
drop_table :people
-
end
-
end
ここでpeopleテーブルに対応したPersonというベースとなくクラスを以下のように定義したとします。
-
class Person <ActiveRecord::Base
-
# edit here
-
end
こうするとPersonを継承したモデルは全てpeopleテーブルに保存され、typeカラムに各モデルのクラス名が入ります。
(単一テーブル継承の詳しい使い方はこちらをご覧ください:「Railsで単一テーブル継承(Single Table Inheritance) | 京の路」)











