我有一个订单、地址和用户模型。一个订单可以有一个帐单和一个送货地址。一个用户可以有多个保存的地址。对所有事情都使用地址模型是有意义的。我关心的是订单和帐单/送货地址的关系。
我不确定这是否可以与多态关联一起使用。
class Order
has_one :billing_address, as: :addressable, polymorphic: true
has_one :shipping_address, as: :addressable, polymorphic: true
end
class User
has_many :addresses, as: :addressable, polymorphic: true
end
class Address
belongs_to :addressable, polymorphic: true
end
我是否正确建模?人们通常如何在 Rails 中解决这个问题?
我可以将它反转到 Orderbelongs_to :billing_address
和的位置shipping_address
,但这意味着user_id
在 Address 模型中有一个冗余。