2014-01-28 69 views
2

我正在使用郵箱程序gem在Rails應用程序中的紅寶石內發送郵件。寶石正在工作。我不能爲我的生活弄清楚如何在發送的消息頁面上訪問收件人。在發送的消息頁面上,我正在嘗試循環發送的消息,並訪問已發送消息的收件人並將該人員顯示給用戶。如何在郵箱中發送郵件頁面上訪問收件人

在常規收件箱頁面,我用了以下內容:

<% 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

你有對話的參與者(你稱它爲字母)。

只是過濾當前用戶,你會很好。

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

太棒了,謝謝! – Philip7899

0

每條消息都有收件人,這是一個列表。假設你的對話只是在兩個用戶之間,你可以抓取第一個列表的元素:

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