Rails 5中群聊的关系问题

时间:2017-05-16 22:17:08

标签: ruby-on-rails

我在RoR上创建了一个聊天应用程序,我想做这样的事情:用户可以创建一个聊天室,然后可以邀请其他人。我有:

class Conversation < ApplicationRecord has_many :messages, dependent: :destroy belongs_to :creator, :class_name => "User", :foreign_key => "user_id" has_many :users

但我不知道如何选择邀请创作者进入会议室的用户。那么,我需要做些什么来解决这个问题。

1 个答案:

答案 0 :(得分:-1)

不确定您是否已完全解释了您的需求,但是通过查看问题,您可能需要:用户用户对话以及对话

class UserConversation
  belongs_to :conversation
  belongs_to :user
end

class User
  has_many :user_conversations
  has_many :conversations, through: :user_conversations
end

class Conversation
  has_many :user_conversations
  belongs_to :creator, class_name: "User", foreign_key: "user_id"
  has_many :users, through: :user_conversations
end

要选择用户,您最终会得到以下内容:

conversation.users

通过这个基本设置,

  1. 用户可以创建群聊/对话
  2. 用户可以将其他用户添加/分配到群聊
  3. 用户可以参加多个群组聊天
  4. 如果在对话中有其他设置应该由用户完成,则可以在user_conversation上完成,例如对于每个聊天,我想使用不同的用户名或其他类似的配置。