1

我正在将此 gem 用于私人消息:https ://github.com/jongilbraith/simple-private-messages

我想创建一个线程对话,而不是脚手架提供的电子邮件对话。

例如,用户 A 向用户 B 发送了 10 条消息。用户 A 也向用户 C 发送了 10 条消息。

而不是遍历所有消息。(电子邮件查看)我想创建一个威胁,例如:

收件箱

Conversation with User A (10 messages)
Conversation with User C (10 messages) 

当点击对话时,消息应该在日期之后排序。所以这就像一次谈话。

消息表:

id
sender_id
recipient_id
sender_deleted
recipient_deleted
subject
body
read_at
created_at
updated_at

如何创建这些视图?如何对消息进行分组?

4

1 回答 1

2

简短的回答是:你不能用那个宝石。您必须扩展它并添加一个对话模型,然后在用户和消息之间架起桥梁。

相反,我建议您使用这个 gem:

https://github.com/ging/mailboxer

比您当前的宝石更强大,而且它带有开箱即用的对话。我以前用它来模仿类似 gmail 的视图。

从指南:

#alfa wants to retrieve all his conversations
alfa.mailbox.conversations

#A wants to retrieve his inbox
alfa.mailbox.inbox

#A wants to retrieve his sent conversations
alfa.mailbox.sentbox

#alfa wants to retrieve his trashed conversations
alfa.mailbox.trash

非常简单:

current_user.mailbox.conversations.each do |convo|
  convo.subject
  ...
end
于 2012-11-05T23:45:57.843 回答