2013-03-11 43 views
1

我不知道我理解rails多態。 在Java中,你可以創建一個從同一對象類型的對象: http://www.fh-kl.de/~guenter.biehl/lehrgebiete/java2/j2-08-Dateien/abb.8.10.jpgRails:多態性assoziation,has_many:通過

Person trainer = new Trainer() 
Person sportler = new Trainer() 

在Rails http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

在這個例子:照片可以從僱員或從產品,聽起來很奇怪,因爲這不是真的是相同的類型。

我理解真正的目的:將對象保存在同一個容器中的一組人或圖像?

在我的rails項目中:我有幾個人:運動員,教練和客人。他們是人的兒子(繼承)。 我想我符合繼承的原因。

還有另一個類名爲練習。

運動員和教練可以創建練習。

所以我想使用多態。練習可以來自教練或運動員。就像rails頁面的例子一樣,圖像可以來自員工或產品。

我是否符合最佳實踐?

我如何實現has_many:通過polymorphy? 這是不可能使用多態的habtm assoziation。 你必須定義一個額外的類,但具體到底是什麼?

回答