如何将多个模型添加到购物车Rails

时间:2012-03-15 06:31:26

标签: ruby-on-rails-3

您能否帮助您了解如何将商品添加到购物车。 Rails Agile解释了如何通过line_items将产品添加到购物车。 假设我的网站提供旅游套餐,豪华轿车服务,公寓房,其他一些优惠。 客户增加豪华轿车,旅游套餐,购物车和支付。 它们是不同型号的型号包,型号豪华轿车,型号公寓等型号。如果是这样,当我通过line_items(cart_id,product_id)添加到购物车时,我无法弄清楚如何添加其他模型。或者我应该将所有型号链接到产品型号吗? 提前致谢

2 个答案:

答案 0 :(得分:0)

您可能不需要为每种产品类型使用不同的型号。您可以将产品分解为不同的类别。所以你只需要一个额外的模型 - 一个分类模型。每个产品都属于一个类别(类别将有许多产品)。在数据库中,每个产品都有一个category_id。

像这样:

class Product < ActiveRecord::Base

  belongs_to :category
....


class Category < ActiveRecord::Base
  has_many :products

...

答案 1 :(得分:0)

你提到模型太不同了(在属性方面)。因此,单表继承可能不是您想要的。在这种情况下,使用polymorphic association来实现此目的。

class LineItem < ActiveRecord::Base
  belongs_to :purchasable, :polymorphic => true
end

class Tour < ActiveRecord::Base
  has_many :line_items, :as => :purchasable
end

class LimoService < ActiveRecord::Base
  has_many :line_items, :as => :purchasable
end