我有一個Identity
模型,其中有很多types
(說,student
,teacher
)。每種類型都有許多在不同模塊中定義的獨特方法,以及許多共享方法。包含模塊取決於即時類型
我想根據即時類型包含某些模塊以避免命名衝突。例如:
class Identity < ActiveRecord::Base
if instant.type =='student'
include Student
if instant.type == 'teacher'
include Teacher
end
end
我應該怎麼做?
爲什麼不只是從身份繼承學生和老師班? –
我同意伊萬,除非一個實體可以是一個老師和一個學生,你最好用STI - http://blog.thirst.co/post/14885390861/rails-single-table-inheritance – house9
謝謝伊萬和house9。 STI是一個明智的選擇。不幸的是,我有一個很大的遺留代碼,如果轉換爲STI可能會中斷代碼(例如,我使用的組合鍵寶石可能會中斷索引)。 – AdamNYC