2010-10-05 33 views
0

一系列的has_many的關係,我用Rails 3什麼是Rails的方法來管理過同型號

主要模式是產品

:product has_many :images 
:product has_many :related_products (self-referential) 
:product has_many :descriptions 
:product has_many :specifications 
:product has_many :upc_codes 
:product has_many :prices 

你的想法。我試圖確定我是否可以將這個問題推到一個屬性模型中,其中一個屬性是價格,規格說明等等。但是我遇到的問題是,雖然其中一些子模型只有一個屬性,但其他有很多。例如,圖像可能只有一個路徑屬性,但「描述」可以具有文本值和語言代碼,而「價格」可以具有價格和貨幣組件。

Properties模型提供了很多靈活性,但是如果我處理的是包含多個屬性的子屬性,則會出現問題。

是我需要這些的真正答案嗎?屬性與產品始終是一對一的屬性方法,以及這些具有多個屬性的子模型的每個單獨模型(價格,描述等)的方式?

回答

1

如果屬性具有非常類似的一組方法,用例和行爲,則將它們合併到單個Property模型中是有意義的。

如果他們各自以不同的方式工作,需要不同的方法和行爲,那麼您目前所描述的將是正確的。

如果情況介於兩者之間,則可以使用Single Table Inheritance來避免代碼重複,並保持設計簡單。

+0

那是關鍵,丹。我專注於屬性本身而不是行爲。這些行爲決定了某件事是否是一個實體,謝謝你的回答。 – AKWF 2010-10-25 02:30:51

相關問題