【发布时间】:2023-03-09 18:44:01
【问题描述】:
我即将为 Rails 应用构建消息传递功能。
我曾想过拥有conversations、conversation_participants 和conversation_messages。
这意味着:
对话:
has_many :conversation_participants
has_many :conversation_messages, through: :conversation_participants
对话参与者:
belongs_to :conversation
belongs_to :user
has_many :conversation_messages
对话消息:
belongs_to :conversation_participant
到目前为止,一切都很好。
我只是陷入了一些场景:
- 如何找到用户 1 和用户 2 的对话?
- 如何为用户 1、用户 4 和用户 5 找到一个?
- 如果有两个对话,一个针对用户 1,4,5,一个针对 1,4,5,6,但我只是在寻找 1,4,5?
希望有人可以帮助我解决这个问题!谢谢!
【问题讨论】:
-
您是否有理由希望将参与对话的用户设置在单独的表格中 -
conversation_participants- 而不是仅使用您的users表格? -
@jeffdill2 是的,假设该应用程序也有组。一个小组也应该有一个对话。如果有人被添加到该组,他也可以访问该对话,但不应看到旧消息。
标签: ruby-on-rails relationships