2012-03-15 239 views
0

比方說,客戶正在將多個產品添加到購物車。 添加汽車,公寓,旅遊,一些優惠券。 產品屬於類別。 類別具有名稱屬性。 但是,如何給汽車,公寓,旅遊,優惠券不同的屬性? 我無法從產品模型中明確創建所有產品。 因此,我應該爲每個類別創建不同的模型,並通過許多ro產品模型進行連接。 或者我會錯誤的方向? 謝謝添加產品到購物車Rails

+0

該類別純粹是一個標籤,還是類別中的項目實際上行爲不同? – 2012-03-15 12:54:10

回答

0

有一個類別個別產品似乎是一個很好的辦法在這裏。由於您的Category因屬性而異。你可以做的是創造一個更模型,讓我們說:MasterCategory其中有許多CategoryCategory屬於MasterCategory,這意味着你的MasterCategoryCars你必須Audi, BMW, Nissan etc etc. categories,然後在表格products_categories鏈接您的產品提供給他們各自的供應商其中將有product_id, category_id

在我看來,模式可能是這樣的:

ProductsCategory: 
product_id, category_id 

MasterCategory: 
id, name, created_at, updated_at 

Category: 
id, master_category_id, parent_id, name, position, name, permalink 

對於例如 - 一個car MasterCategory看起來就像這樣:

#<MasterCategory id: 1, name: "cars", created_at: "2012-02-14 13:03:45", updated_at: "2012-02-14 13:03:45"> 

及其categories將是:

[#<Category id: 1, master_category_id: 1, parent_id: nil, position: 0, name: "cars", created_at: "2012-02-14 13:03:45", updated_at: "2012-02-14 13:03:45", permalink: "cars">, #<Category id: 2, master_category_id: 1, parent_id: 1, position: 0, name: "Audi", created_at: "2012-02-14 13:03:45", updated_at: "2012-02-14 13:32:51", permalink: "cars/audi">] 

現在你可以在使用parent_id屬性來定位並遍歷兩種方法parentchildrenCategory型號主人分類很容易。並且您可以使用permalink屬性輕鬆找到屬於另一個類別且具有一個查詢的類別:Category.find_by_permalink(params[:permalink]),並且可以顯示與此特定類別相關的所有產品。將來,當您進行縮放時,我敢打賭,您需要使用此position屬性來管理您的類別在您的網頁上顯示的位置。而在過去的master_category_id會給你一個輕鬆的生活:

car = MasterCategory.find(1) 
car.categories.where("parent_id IS NOT NULL") 

所有最優秀的! :)

相關問題