将mailboxer gem 0.12.2 版与Rails 4.1.4 版一起使用。
当我向自己发送消息时,“对话”视图会显示相同的消息两次(一次显示为mailbox_type
= sentbox
,一次显示为mailbox_type
= inbox
)。对于发送给其他用户的消息,我没有这个问题。
我只想在我的对话视图中显示一次消息(理想情况下是inbox
查看我的收件箱时的sentbox
版本和查看我发送的消息时的版本。)有没有办法可以做到这一点?
这是我show
在自定义中的操作ConversationsController
(current_user
是指示当前登录用户的设计方法)
def show
@mailbox = current_user.mailbox
@conversation = @mailbox.conversations.find(params[:id])
@receipts = @conversation.receipts_for(current_user)
end
我还在我的show
行动中尝试了以下组合,所有结果都相同。
- 使用
inbox
方法而不是conversations
方法:
@conversation = @mailbox.inbox.find(params[:id])
- 在实例变量上使用
receipts_for
方法:@mailbox
@receipts = @mailbox.receipts_for(@conversation)
这是我的相应show.html.erb
视图
<ul>
<%= content_tag_for(:li, @receipts) do |receipt| %>
<% message = receipt.message %>
<strong>From:</strong> <%= message.sender.email %>
<br/>
<strong>Message:</strong><%= simple_format h message.body %>
<strong>Sent:</strong> <%= @conversation.updated_at.strftime("%a, %m/%e/%Y %I:%M %p") %>
<div>
<br/>DEBUG INFO:<br/>
Message Id <%= message.id %><br/>
Receipt Id <%= receipt.id %><br/>
Receipt Mailbox type <%= receipt.mailbox_type %><br/>
</div>
<hr/>
<% end %>
</ul>
有没有办法让我的“收件箱”视图与自己的对话不显示重复的消息?