我有一个
项目模型
class Item < ActiveRecord:Base
has_and_belongs_to_many :orders
end
订单型号
class Order < ActiveRecord:Base
has_and_belongs_to_many : items
end
订单可以包含许多项目,HABTM将负责这些项目。但是,我在哪里/如何存储订购商品的数量?
例如: 让我们说Order1中有Item1和Item2。现在我想存储与Order1相关的数量,它有两个Item1和五个Item2。
执行此操作的轨道方式是什么?
答案 0 :(得分:2)
你可以做的一种方法是使用has_many:通过关联。这为订单和商品之间的连接表创建了一个独立的实体。在你的情况下:
class Order < ActiveRecord::Base
has_many :invoices
has_many :items, :through => :invoices
end
class Invoice < ActiveRecord::Base
belongs_to :order
belongs_to :items
#Put in the migration for this table a column for quantity
end
class Item < ActiveRecord::Base
has_many :invoices
has_many :orders, :through => :invoices
end
这可以解决你的问题。这样,与Item1相关联的Order1在Invoice表中的数量为2,而与Invoice表中的单独数量为5的Item2相同。
您可以在The has_many :through Association中的A Guide to Active Record Associations部分详细了解这些关系。