我目前正在研究Rails 3應用程序,它看起來可能需要爲幾個模型使用類表繼承。Rails中的類表繼承3
這是一個簡單的例子。
我有一個名爲Person的類,它具有常用屬性,如名稱,電子郵件和密碼,這些屬性對於應用程序中所有類型的用戶都是通用的,並用於身份驗證。
Person有兩個子類(或兩種類型的人...),Driver和Passenger。這兩個子類都共享Person的通用屬性,但它們具有特定的附加屬性,這些屬性對於它們自己是唯一的。 (例如司機可以有許多車輛和執照,但乘客不會)
我會如何實施CTI的這種情況?我一直在尋找在這裏提供了一個示例:
http://rhnh.net/2010/08/15/class-table-inheritance-and-eager-loading
不過,這並不瞭解如何從司機或乘客對象訪問一個人的共同屬性推測,我有點迷茫那。
尤其想什麼,我知道的是:
如果我更新驅動程序的屬性,我怎麼能輕鬆地訪問和更新父人表中的相關屬性?我是否必須掛鉤after_save回調,並分離出哪些屬性更新去哪裏?或者有更好的方法來解決這個問題嗎?
我應該補充一點,這是我的應用程序實際發生的簡化示例。我確定我需要在我的情況下實現類表繼承,單表繼承不是最好的方式。 – 2010-08-18 00:24:39
我對我在我的問題中提到的博客發表了評論,作者慷慨地提供了一種實現此方法的示例:http://rhnh.net/2010/08/17/updating-class-table-inheritance-表(You rock Xavier!) – 2010-09-14 05:21:50