Seb*_*ian 2 activerecord ruby-on-rails
我发现这有点弯曲,想要一些想法.我的设计喜欢这个:
我需要定义构建器地址和客户端地址之间的关联
我最初的数据库设计是这样的:
Builders
--------------------
id
postal_address_id
...
Clients
--------------------
id
postal_address_id
billing_address_id
...
Addresses
-------------------
id
...
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎合乎逻辑,但我在rails关联中翻译它时遇到了麻烦.
我在想地址可以定义belongs_to:可寻址的多态关联.但是如何处理客户的邮政和账单地址.
任何帮助都感激不尽.
在这种情况下,我会使用STI(单表继承),我认为这是完美的情况.
首先,您必须在地址模型中添加字段"type".
然后你可以定义你这样的类:
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
Run Code Online (Sandbox Code Playgroud)
在rails doc中阅读有关STI的更多信息
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |