gpt4 book ai didi

ruby-on-rails - 多个具有并属于多个关系

转载 作者:行者123 更新时间:2023-11-29 14:14:04 24 4
gpt4 key购买 nike

我有一个模型有 has_and_belongs_to_many与其他两个模型的关系。例如,我有一个 Message具有收件人的模型。但是,接收者可以是两种不同类型的模型之一。例如,InternalContact , 和 ExternalContact .

建立关系很容易,我可以获得消息的外部联系人 ( Message.first.external_contacts ) 或其内部联系人 ( Message.first.internal_contacts )。然后我可以以同样的方式轻松地添加到这个关系数组 ( Message.first.external_contacts << ExternalContact.first )

我想要的是能够通过调用类似的东西来简化事情并使其更有效:

Message.first.recipients # an array of both external and internal contacts
Message.first.recipients << ExternalContact/InternalContact # (add either model)

任何方向表示赞赏,我肯定被困住了!

最佳答案

您可以有一个单独的收件人类型表,然后仅将消息与收件人映射

Recipient          Recipient_type   Message       Message_recipient_map
---------- --------------- ------- -------------------
id id id message_id
recipient_type_id recipient_id

然后你可以在消息和收件人之间建立 has_many_through 关系,并且可以通过调用 message.recipients 访问消息的所有收件人

希望对你有帮助!

关于ruby-on-rails - 多个具有并属于多个关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55694484/

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