【问题标题】:Getting chat messages in rails API only application在仅 Rails API 的应用程序中获取聊天消息
【发布时间】:2024-11-08 03:55:01
【问题描述】:

我有两个模型,一个是 User,另一个是 MessageUser 模型有一个属性名称,Messagemodel 有一个称为文本的属性。 User 和 Message 之间存在多对多的关系。现在考虑两个用户 John 和 Jane 我想检索同时属于 John 和 Jane 的所有消息。我该怎么做。

用户模型

has_and_belongs_to_many :messages

消息模型

has_and_belongs_to_many :users

【问题讨论】:

  • 请随意更改任何内容
  • 为什么一条消息应该属于多个用户?
  • 一个是发消息的,一个是收消息的,因为我需要有不同的聊天室,我必须区分它
  • 我不知道你是否有更好的结构欢迎提出建议

标签: many-to-many ruby-on-rails-5 rails-api


【解决方案1】:

我会这样做:

Message.includes(:users).where(users: { name: %w(John Jane) })

分解:

# Enable user conditions in the messages query
Message.includes(:users)

# Then take messages belonging to Jane and John
.where(users: { name: %w(John Jane) })

【讨论】:

  • 你能解释一下我对 Rails 不熟悉吗
最近更新 更多