gpt4 book ai didi

ruby-on-rails - rails : Need help defining association for address table

转载 作者:行者123 更新时间:2023-12-03 07:08:19 25 4
gpt4 key购买 nike

我发现这有点令人费解,想要一些想法。我的设计是这样的:

  • 有builders表,每个builder可以有一个邮政地址
  • 有一个客户表,每个客户可以有一个邮政地址和帐单地址
  • 有一个地址表

我需要定义构建者地址和客户端地址之间的关联

我最初的数据库设计是这样的:

Builders
--------------------
id
postal_address_id
...

Clients
--------------------
id
postal_address_id
billing_address_id
...

Addresses
-------------------
id
...

这对我来说似乎是合乎逻辑的,但我在将其翻译成 Rails 关联时遇到了困难。

我认为地址可以定义一个belongs_to:可寻址的多态关联。但我如何处理客户的邮政地址和帐单地址。

任何帮助将不胜感激。

最佳答案

在这种情况下,我会使用 STI(单表继承),我认为这是完美的情况。

首先,您必须在地址模型中添加一个“类型”字段。
然后你可以像这样定义你的类:

class Client
has_one :billing_address, :as => :addressable
has_one :shipping_address, :as => :addressable
end

class Address < ActiveRecord:Base
belongs_to :addressable, :polymorphic => true
end

class BillingAddress < Address
end

class Shipping Address < Address
end

了解有关 STI 的更多信息 in the rails doc

关于ruby-on-rails - rails : Need help defining association for address table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6353317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com