Rails で STI を使ったのでメモを残します
はじめに
自分用メモです。
参考
実装ダイジェスト
db/schema.rb
create_table "images", :force => true do |t| t.string "type" # ここに各モデルのタイプが入る ex. "PngImage", "JpegImage" t.string "path" end
app/models/image.rb
class Image < ActiveRecord::Base # ex. belongs_to user とか end
app/models/png_image.rb
class PngImage < Image # 個別の処理があれば end
app/models/jpeg_image.rb
class JpegImage < Image # 個別の処理があれば end
モデル作成
# これで type に 'PngImage' が入った Imageテーブルのカラムがつくられる PngImage.create!(path: '/path/to/img')