問題一覧に戻る
上級高度なデータベース
問題60: STI - 単一テーブル継承
Railsで単一テーブル継承(STI)を実装する方法を学習します。これにより、複数のモデルが単一のデータベーステーブルを共有できます。STIは、異なるユーザータイプや製品カテゴリのように、ほとんど共通の属性を持ちながら一部の動作が異なるオブジェクトがある場合に便利です。
# STI用のtypeカラムを追加
add_column :users, :, :string
# 親モデルを定義
class User < ApplicationRecord
end
# 子は親から継承
class Admin <
def can_edit?
true
end
end
# 特定のタイプをクエリ
admins = .