メールボックスの gem を使用して、プライベート メッセージング システムを構築しています。
ユーザー リストをループし、各ユーザー名の横に、既存の会話が存在する場合はその会話を開くリンクを提供し、会話が存在しない場合は新しい会話を作成するリンクを提供します。(そのため、ユーザーは、電子メールのようなシステムではなく、別のユーザーと 1 回の会話しかできません)。
<% @users.each do |u| %>
<%= link_to u.name, u %>
<% @mailbox.conversations.each do |c| %>
<% if c.receipts.where(:receiver_id => user).present? %>
true
<% else %>
false
<% end %>
<% end %>
<% end %>
したがって、「true」は会話を再開するためのリンクになり、「false」は新しい会話のボタンになります。
ただし、あるユーザーとの会話が 4 回あり、特定のユーザーとの会話が 1 回の場合は、true false false false が返されます。1 つの続行ボタンと 3 つの新規作成ボタンです。基本的に、trueまたはfalseのいずれかを返すために全体が必要です