我正在使用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
因为没有办法用这些方法组织消息的显示方式(至少据我所知)。如何遍历邮件并找到每封邮件的邮件收件人?
答案 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 %>