将项目添加到购物车Rails

时间:2012-03-15 07:44:18

标签: ruby-on-rails-3

假设客户正在向购物车添加多个产品。 添加汽车,公寓,旅游,一些优惠券。 产品属于类别。 类别具有名称属性。 但如何赋予汽车,公寓,旅游,优惠券不同的属性? 我无法从产品模型中创造出一切。 那么我应该为每个类别创建不同的模型,并通过多个ro产品模型连接? 或者我的方向错了? 感谢

1 个答案:

答案 0 :(得分:0)

对于单个产品,类别似乎是一种很好的方法。由于您的Category因属性而异。你可以做的就是创建另一个模型,比方说:MasterCategory有许多CategoryCategory属于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模型中使用childrenCategory两种方法来定位和遍历 master 子类别很容易。您可以使用parent_id属性通过一个查询轻松找到另一个类别下的类别:permalink,并且可以显示与此特定类别相关的所有产品。将来,当您进行扩展时,我可以打赌,您需要使用此Category.find_by_permalink(params[:permalink])属性来管理要在您的网页上显示的类别的位置。在上一篇position中,您将获得生活中的轻松:

master_category_id

一切顺利! :)