Rails 4邮箱会话删除参与者

时间:2015-09-01 14:32:11

标签: ruby-on-rails-4 mailboxer

我已经习惯将邮箱中的邮箱用于邮箱。我想从会话中删除参与者。如何删除它?任何人都可以告诉我。

2 个答案:

答案 0 :(得分:0)

如果您仍在寻找答案,我只是遇到了同样的问题并发现了一些有趣的事情。

在我的场景中,我有一组用户,他们共享一个共同的对话。因此,团队对象持有conversatoin_id。每次创建团队或某人加入团队时,都会创建一个新会话,或者使用add_participant(用户)功能将新人添加到现有会话中。

我遇到过这个问题,因为我的用户现在需要能够离开团队,这意味着他们会被排除在team_conversation之外。

查看Mailboxer Gem的源代码,可以看到add_participant(用户)函数实际为对话中创建的每条消息创建一个新收据,并使用add_participant(用户)调用中的用户作为接收者。

因此,为了扭转这种情况,从而从对话中删除某人,你可以做到

@user_receipts = @conversation.receipts_for(user)
@user_receipts.destroy_all

这对我来说很好。不过要小心。由于这会删除该用户对于给定对话的所有收据,如果您希望查看用户在对话中写的内容,您必须找到另一个仍处于活动状态且在该时间处于活动状态的用户。 user-who-left是活跃的。无论如何,我希望它能解决你的问题,如果你有任何疑问,请告诉我。 d

答案 1 :(得分:0)

您可以尝试opt_out(参与者)。它将参与者从对话中删除。这对我有用。

这里是source

@conversation.opt_out(@user)