邁向 Rails 高級新手

STI

全名:單一表格繼承 STI(Single-table inheritance)

rails guide說明片段:

a way to add inheritance to your models

簡單來講就是讓繼承的submodel可以擁有父類別的表格欄位且繼承父類別的方法

在rails慣例中只要加上type這個欄位在父類別的資料庫中就可以了

例:User有分Native跟Foreigner

class User < ActiveRecord::Base
end
class Native < User
end
class Foreigner < User
end

這樣就可以了,可以新增Native User

native = Native.create(:name => "foobar")
native.type # => "Native"

STI的使用時機是當我們需要一個擁有一樣特性但是不同行為的model時才使用。

參考資料: