2
我有一個模型,項目。
每個項目has_many特徵。
的特徵能夠被許多不同的事情:
一個SizeTrait
一個ToppingsTrait
一個FlavorTrait
等Ruby on Rails的HAS_MANY多態性
我如何設置Ruby on Rails中這種關係?在普通的Ruby應用程序中,我可以使用鴨子打字,但這需要存儲在數據庫中。
這就像belongs_to的與多形反轉:真正
我想,以避免單一表繼承,因爲這些特質,同時他們也將共享一個鴨式界面,將會有不同的功能。這會在表格中造成很多未使用的字段,這似乎是一個混亂,混亂的做法。
大約有這幾個帖子已經在計算器上,但是你比我的不同情況和其他有一個非常狡猾的解決方案,我想看看有沒有更好的。
我不明白爲什麼不使用單表繼承做到這一點?如果你的特徵是非常不同的功能,你必須在不同的模型中定義它們,對吧?還是你問如何讓'@ item.traits'使用在不同模型中定義的方法? –
@Donald它看起來很亂,因爲如果所有特質模型共享一張桌子,將會有很多未使用的字段。如果這是做到這一點的最佳方式,那麼我就是這麼做的,但我認爲會有更好的方式。 – ThaBullfrog
@Donald剛剛重讀你的評論,並想澄清:我絕對要這些在不同的模型。如果可能的話,我寧願將這些模型放在單獨的表格中。 – ThaBullfrog