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](https://cdn-ak-scissors.b.st-hatena.com/image/square/35cff23a3990c6564736ae8638617551192fda26/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fn%2Fnipe880324%2F20141204%2F20141204221147.png)