如果有`conversation_id`则显示内容

时间:2014-01-22 20:43:26

标签: ruby-on-rails

我设置了一个消息传递系统,因此当创建新的message时,将为与conversation_id的{​​{1}}相关联的任何回复创建messageid应与conversation_id的{​​{1}}匹配。

我的问题是如何显示每条消息。当前会话ID?我正在尝试创建一个线程消息传递系统。

以下是一个例子:

我发送了一条消息,表明已创建消息ID 5且没有会话ID(我创建的代码不会为原始消息提供会话ID)。我回复了消息ID 5,并进行了一次创建消息ID 8,9,10的对话。这三个消息id的会话ID为5。

当用户在视图中查看消息ID 8 ...时,它还应显示消息ID 5,9和10,因为它是对话的一部分,并且它们的conversation_id为5(消息ID为5,没有conversation_id)显示它,因为它是原始消息)。

控制器:

message

1 个答案:

答案 0 :(得分:1)

我建议使用对话模型,这样你就可以拥有一段很好的关系。在这种情况下,您的问题很容易解决,代码会更有意义。

如果您不愿意这样做,您始终可以使用相同的conversation_id获取所有邮件:

@messages = Message.where(conversation_id: params[:conversation_id]).order(created_at: :desc)}

GL& HF