在Rails中的Mailboxer收件箱中显示用户名

我在我的Rails应用程序中使用Mailboxer( https://github.com/ging/mailboxer )gem来处理用户之间的私人消息。 根据文档,我使用= render mailbox.inbox来显示登录用户的所有对话(消息)列表。 但是,该方法仅输出消息的主题。 我需要显示消息的发件人以及主题。 如何编辑此输出以显示发件人姓名?

SQL表显示发件人名称未存储在会话表中,而是存储在notification_on_conversation_id(一对多)的通知表中。 我尝试使用但是我收到以下错误:

 NoMethodError in Conversations#index undefined method `notifications' for nil:NilClass 

我可以将哪些内容添加到会话控制器和视图中以显示会话的用户和主题?

谢谢!

对话控制器:

 class ConversationsController < ApplicationController before_filter :authenticate_user! helper_method :mailbox, :conversation def create recipient_emails = conversation_params(:recipients).split(',') recipients = User.where(email: recipient_emails).all conversation = current_user. send_message(recipients, *conversation_params(:body, :subject)).conversation redirect_to conversation end def reply current_user.reply_to_conversation(conversation, *message_params(:body, :subject)) redirect_to conversation end def trash conversation.move_to_trash(current_user) redirect_to :conversations end def untrash conversation.untrash(current_user) redirect_to :conversations end private def mailbox @mailbox ||= current_user.mailbox end def conversation @conversation ||= mailbox.conversations.find(params[:id]) end def conversation_params(*keys) fetch_params(:conversation, *keys) end def message_params(*keys) fetch_params(:message, *keys) end def fetch_params(key, *subkeys) params[key].instance_eval do case subkeys.size when 0 then self when 1 then self[subkeys.first] else subkeys.map{|k| self[k] } end end end end 

sender_id可以使用receipt.notification.sender_id和.sender_type获得

对于任何对话,您可以使用以下方式检索收据:@receipts = conversation.receipts_for

我在某个时刻遇到了同样的问题,我的解决方案是这样的: 在邮箱邮件通知中访问current_user