タグ

STIに関するikasamak503のブックマーク (2)

  • Rails4でSTI(単一継承テーブル)を行う - Rails Webook

    RailsのActiveRecordを使って次のようにすることでSTI(Single Table Inheritance: 単一継承テーブル)を行うことができます。 テーブルにtype(string)カラムを持たせる そのテーブルに対応するモデルクラスを継承したクラスを作成する 例えば、(Book)とコンピューター(Computer)の商品を扱っており、一部カラムが同じで一部カラムが違うので、次のように1つのテーブルを使い、3つのモデルを作成することで、Rails側でbooksテーブルとcomputersテーブルが存在しているようにBookオブジェクトとComputerオブジェクトを扱うことができるようになります。 これにより、 Product.all # => Book, Computerモデルを含めたすべてレコードをproductsテーブルから取得 Computer.all # =>

    Rails4でSTI(単一継承テーブル)を行う - Rails Webook
  • ActiveRecordでカラムの値を偽装しながらPolymorphic associationとSTIを併用する - Qiita

    Article (has-many notifications) Comment (has-many notifications) Mention (has-many notifications) Notification (belongs-to something) のようなモデルとそれらの関連性があるとき、notificationsテーブルに例えば以下のようなカラムがあれば、Notification.belongs_to :source, polymorphic: true のようなコードでPolymorphic associationが実現できるようになると思います。 source_id source_type しかしNotificationの要件が大きくなるにつれ、関連するモデルの種類によって条件分岐が増えてくる可能性があります。例えば、Articleに関連するNotificati

    ActiveRecordでカラムの値を偽装しながらPolymorphic associationとSTIを併用する - Qiita
  • 1