我有一個設立在那裏我有多個型號,從基本型繼承 - 標準的單表繼承:在STI表/建模模式中,如何具有由所有類型共享的類型特定屬性?
class Parent < ActiveRecord::Base
end
class A < Parent
end
class B < Parent
end
我STI的設置是正確的,偉大工程!但是,我想添加:鍵入特定的屬性,如描述。
例如,我希望所有的A型父母的有描述,「我是A型家長。我的作用是...」
我想避免一遍又一遍地(複製數據讓A的每個實例存儲相同的描述)。
首先想到的就是在子類上有一個特定於模型的方法。因此,像:
class A < Parent
def self.description
"I am the A type of Parent. My function is for..."
end
end
我不喜歡這樣的解決方案,因爲這真的是數據上的特定類型的子類(而不是在子類的實例本身)的,你會得到所有的配備使這種行爲的問題(部署來改變數據等)
這是唯一的方法來做到這一點,或者是否有替代品我只是沒有看到?
這是能夠解決我的顧慮一個夢幻般的方式。我相信有必要使before_save函數更具動態性(對於id沒有硬編碼值),但這個想法是一樣的!非常感謝你。要保持這個問題的公開以徵求更多潛在的想法,但你已經解決了這個問題。 –
@LewaaBahmad很高興聽到這個消息。請將代碼作爲思考的食物,而不是實際的實施。硬編碼「id」感覺非常噁心。 :D – jdno
絕對是哦。儘管我很欣賞,但您已經以非常純粹的方式呈現了這個概念。當我飆升時,我會與你分享我的實施。 –