Ruby on rails _和_属于_许多不允许重复
我有以下两种型号:Ruby on rails _和_属于_许多不允许重复,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我有以下两种型号: class Order < ActiveRecord::Base has_and_belongs_to_many :products, :uniq => false end class Product < ActiveRecord::Base has_and_belongs_to_many :orders, :uniq => false end 类顺序false 结束 类产品false 结束 它们由一个参考表orders\u product
class Order < ActiveRecord::Base
has_and_belongs_to_many :products, :uniq => false
end
class Product < ActiveRecord::Base
has_and_belongs_to_many :orders, :uniq => false
end
类顺序false
结束
类产品false
结束
它们由一个参考表orders\u products
我希望order能够包含多个相同产品的实例,因此当我@order.product\u id=[2,2,2]
时,这意味着添加3倍于id为2的产品
这将导致@order.product\u id=[2]
,是否有必要告诉Model我确实需要复制品?我不推荐(也不考虑任何用途)您尝试在此处实现关联的方式。虽然这两个模型之间有很多关系,但您要做的是从点1到点2绘制3条线。如果您尝试使用@order.product_ids=[2,3,4]
,那么它应该可以正常工作并有意义。
在您的情况下,如果您希望一个订单中有多个产品,那么在关系表
订单\u products
上应该有一个额外的列,它表示每个订单的产品
数量。在这种情况下,建议对habtm
关联使用has\u many
,因为您可以更好地控制关系表。阅读只是为了重复和澄清上述内容,这里正确的选择是成熟的连接模型,而不是HABTM。通常在问题中的用例中,这通常称为“行项目”,它与订单和产品关联,并包括“计数”字段。右,或OrderItem,即订单有多个:订单项目,OrderItem有一个:产品和数量。