Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将对话添加到邮件的最佳路径_Ruby On Rails_Email - Fatal编程技术网

Ruby on rails 将对话添加到邮件的最佳路径

Ruby on rails 将对话添加到邮件的最佳路径,ruby-on-rails,email,Ruby On Rails,Email,我有一个收件箱系统,但我不知道如何实现回复功能。所有消息都应属于其他实体,例如“对话”。创建第一条消息时,也会创建对话。随后的所有消息都是该对话的一部分。对话只能在两个用户之间进行,没有允许用户转发消息或向对话中添加更多用户的选项。如果用户使用“回复”操作来回交换多条消息,则用户应该能够在视图中查看该对话中的过去消息。这样做的要求是什么?我应该创建一个对话模型,还是可以在Messages表conversation\u id中添加一个新列。如果用户回复消息id 27,那么它将创建一个新的消息id

我有一个收件箱系统,但我不知道如何实现回复功能。所有消息都应属于其他实体,例如“对话”。创建第一条消息时,也会创建对话。随后的所有消息都是该对话的一部分。对话只能在两个用户之间进行,没有允许用户转发消息或向对话中添加更多用户的选项。如果用户使用“回复”操作来回交换多条消息,则用户应该能够在视图中查看该对话中的过去消息。这样做的要求是什么?我应该创建一个对话模型,还是可以在Messages表
conversation\u id
中添加一个新列。如果用户回复消息id 27,那么它将创建一个新的消息id 28,
conversation\u id
值将为27。然后我可以从
conversation\u id
27中进行描述。这将显示属于id 27的所有消息的历史记录

您想在您的
new
操作中的新
消息
上填充一个
recipient\u id
?是这样吗

如果一个对话保证只有两个用户,那么您可以执行以下操作

current_conversation.users.select{u|u.id!=current_user.id}

User.joins(:conversations)。其中(“conversations.id=?AND users.id!=?”,current_conversation.id,current_User.id)。首先


你用的是“回复”,所以我假设对话已经存在。如果没有,作者必须指定对话中的其他用户。

您可能想看看,您可能会在其中找到一些答案。

如果您不这么认为,请向我解释更多,因为从我阅读的内容来看,这不是对上一条消息的功能性回复。记住,在回复邮件视图中,我会显示对话的线程历史记录(就像所有收件箱消息系统一样)。此外,对话始终只有两个用户是正确的。