假设客户正在向购物车添加多个产品。 添加汽车,公寓,旅游,一些优惠券。 产品属于类别。 类别具有名称属性。 但如何赋予汽车,公寓,旅游,优惠券不同的属性? 我无法从产品模型中创造出一切。 那么我应该为每个类别创建不同的模型,并通过多个ro产品模型连接? 或者我的方向错了? 感谢
答案 0 :(得分:0)
对于单个产品,类别似乎是一种很好的方法。由于您的Category
因属性而异。你可以做的就是创建另一个模型,比方说:MasterCategory
有许多Category
和Category
属于MasterCategory
,这意味着你的 {{1} } {/ strong> MasterCategory
您将拥有Cars
,然后将您的产品与表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
MasterCategory将如下所示:
car
及其#<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
模型中使用children
和Category
两种方法来定位和遍历 master 和子类别很容易。您可以使用parent_id
属性通过一个查询轻松找到另一个类别下的类别:permalink
,并且可以显示与此特定类别相关的所有产品。将来,当您进行扩展时,我可以打赌,您需要使用此Category.find_by_permalink(params[:permalink])
属性来管理要在您的网页上显示的类别的位置。在上一篇position
中,您将获得生活中的轻松:
master_category_id
一切顺利! :)