我正在考虑一种模式,用户可以将产品添加到他的订单列表中,该订单将具有状态,评论等。多个用户可以拥有多个订单。每个订单中都有一个产品。什么是最好的方式去?
class User
has_many :orders
end
class Order
has_one :product
end
class Product
belongs_to :category
has_and_belongs_to_many :orders
end
或者我应该考虑使用has_many:通过?另外,与产品模型的habtm关联的has_one关联类型的冲突有没有,或者可以这样使用它?谢谢!
UPD1:经过一系列实验后,我接着说:
class Order
belongs_to :user
belongs_to :product
end
class Product
belongs_to :category
has_many :orders
end
class User
has_many :orders
end
虽然现在一切都很稳定,但我很乐意听到任何评论或推荐
答案 0 :(得分:4)
我认为最好的办法是:
class User
has_many :orders
has_many :products, through: :orders
end
class Order
belongs_to :user
belongs_to :product
end
class Product
belongs_to :category
has_many :orders
has_many :users, through: :orders
end
有关关联的更多信息,请访问:http://guides.rubyonrails.org/association_basics.html