2010-06-08 69 views
0

我正在開發一個rails項目,其中有一個數據模型,其中有多個字段是集合選擇。我想創建另一個模型來表示所有這些集合選擇字段。因此,例如,我的主數據模型有三個集合選擇字段 - 一個用於縣,一個用於分類,另一個用於分類。我可以將它們分成三個獨立的數據模型,但這似乎是多餘的,因爲它們都具有相同的特徵。他們有一種類型和價值,就像一個縣是一個縣,它有一個值得我們說索諾瑪,就像類別有一個類別的類型和值得我們說的酒廠。如果你曾經使用Drupal,我基本上在尋找分類功能的行爲。Rails模型來表示多個字段

所以你看到我的困境:我需要將這些字段分成三個獨立的字段,但它們具有非常相似的數據結構。任何建議將大大讚賞。

回答

1

這是一個完美的案例single-table inheritance。你的問題正在尖叫。

+0

所以基本上我需要創建一個基礎模型,然後爲每個數據類型創建一個單獨的模型,並告訴這些模型從我的基礎模型繼承。這似乎相當合理。 – 2010-06-08 14:45:56

+0

是的,並添加一個'type'屬性,該屬性是一個字符串到該基礎模型,這是Rails存儲正確的類以將該行從數據庫中拉出時所處的位置。 – x1a4 2010-06-08 15:04:40

+0

好吧我想我得到它的大部分有它的設置,但是當我嘗試顯示存儲的值時,它顯示的是ID而不是實際值。有什麼我需要做的是能夠訪問存儲的值而不是值的id。 – 2010-06-08 15:08:08