一部手机有很多信息。
一个电子邮件地址有许多消息。
一条消息要么属于电话、电子邮件,要么都不属于。该belongs_to
关联是可选的。
以下关联似乎适用于这些关系:
- 手机型号
has_many :messages
- 电子邮件模型
has_many :messages
- 消息模型没有
belongs_to :phones, :email
这可以吗,还是有一些适当的方法来指定“can_belong_to”关系?
一部手机有很多信息。
一个电子邮件地址有许多消息。
一条消息要么属于电话、电子邮件,要么都不属于。该belongs_to
关联是可选的。
以下关联似乎适用于这些关系:
has_many :messages
has_many :messages
belongs_to :phones, :email
这可以吗,还是有一些适当的方法来指定“can_belong_to”关系?
这是完全正确的单向关系。使用两者有时被一些纯粹主义者称为“curcular dependency”,并且在使用validates_associated时可能会导致问题。
当您想从一条消息中检索电话信息时,仅从另一端使用has_many :messages
可能是不够的。一般是为了方便。
具有关联的模型belongs_to
包含外键(例如,messages
表将具有phone_id
和email_id
列)。
belongs_to
关联结合让has_many
您可以轻松访问关联记录:
phone.messages
message.phone
因此,如果没有belongs_to
和 FK 列,has_many
关联就不是很有用。
在这种情况下,您可能需要多对多关系,例如has_and_belongs_to_many
消息可以有多个收件人。