如何使用邮箱访问已发送邮件页面上的收件人

时间:2014-01-28 22:02:19

标签: ruby-on-rails ruby ruby-on-rails-4 messaging mailboxer

我正在使用mailboxer gem在rails应用程序中的ruby中发送消息。宝石在起作用。我不能为我的生活弄清楚如何在发送的消息页面上访问收件人。在发送的消息页面上,我试图遍历已发送的消息,并访问已发送消息的收件人并将该人员显示给用户。

在常规收件箱页面上,我使用了以下内容:

<% all_mail = current_user.mailbox.inbox %>
<% all_mail.each do |letter| %>
    <tr>
        <td><%= letter.messages.last.sender.email %></td>
        <td><%= letter.messages.last.subject %></td>
   </tr>
<% end %>

我正在尝试对发送的消息页面进行类似的查找,但我无法弄清楚如何执行此操作(特别是访问收件人的电子邮件)。

我无法使用:

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

#user wants to retrieve his inbox
user.mailbox.inbox

#user wants to retrieve his sent conversations
user.mailbox.sentbox

因为没有办法用这些方法组织消息的显示方式(至少据我所知)。如何遍历邮件并找到每封邮件的邮件收件人?

2 个答案:

答案 0 :(得分:2)

你有参与者进行对话(你称之为信件)。

只需过滤当前用户即可。

conversation = user.mailbox.sentbox.first
filtered_participants = conversation.participants.reject do |u| 
  u.id == current_user.id
end

答案 1 :(得分:0)

每封邮件都有收件人,这是一个列表。假设您的对话只是在两个用户之间,您可以抓住第一个列表的元素:

<% conversation.messages.each do |message| %>
  <%= message.recipients.first.email %>, <%= message.body %>
<% end %>