- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个收件箱系统,但我不确定如何实现回复功能。所有消息都应该属于其他一些实体,例如一个对话”。创建第一条消息时,也会创建对话。所有后续消息都是该对话的一部分。对话只能在两个用户之间进行,没有允许人们转发消息或将更多人添加到对话中的选项。如果用户使用“回复”操作来回交换多条消息……用户应该能够在 View 中查看该对话中他们过去的消息。这样做的要求是什么?我应该创建对话模型还是可以向消息表 conversation_id
添加新列。如果用户回复消息 id 27,那么它会创建一个新的消息 id 28,conversation_id
值将是 27。然后我可以从 conversation_id
27 做一个 desc . 这将显示属于 id 27 的所有消息的历史记录。
最佳答案
您想在 new
操作的新 Message
上填充 recipient_id
吗?是吗?
如果对话保证只有两个用户,你可以做类似的事情
current_conversation.users.select { |u| u.id != current_user.id }
或
User.joins(:conversations).where("conversations.id = ? AND users.id !=?", current_conversation.id, current_user.id).first
您使用的是“回复”这个短语,所以我假设对话已经存在。如果不是,作者无论如何都必须指定对话中的其他用户。
关于ruby-on-rails - 向消息添加对话的最佳途径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19545380/
我是一名优秀的程序员,十分优秀!