mailbox

最初的mailbox的index页是这么写的

 def index
    @conversations = @mailbox.inbox.page(params[:page])
  end

发现怎么发送message都没有首页的显示 于是认为是没有模改sent_message的原因,于是给conversation添加user_id,这里要注意一点是的给conversation添加栏位的时候是加入这个mailboxer_conversations. convertsation这个table在mailbox体系里面是没有的

模改如下

def send_message(recipients, msg_body, subject,current_user, sanitize_text = true, attachment = nil, message_timestamp = Time.now)
    convo = Mailboxer::ConversationBuilder.new(subject: subject,
                                               created_at: message_timestamp,
                                               updated_at: message_timestamp).build
    message = Mailboxer::MessageBuilder.new(sender: self,
                                            conversation: convo,
                                            recipients: recipients,
                                            body: msg_body,
                                            subject: subject,
                                            attachment: attachment,
                                            created_at: message_timestamp,
                                            updated_at: message_timestamp).build
    convo.user_id = current_user.id
    convo.save
    message.deliver false, sanitize_text
  end

这里要注意一点send_message的主题一定要有current_user,要不然会报错undefined local variable or method `current_user’ 模改完毕后并没有预期的显示出来用户的所有convertations 然后以为是index.html.erb的问题,反复查看并不是 最后找到了controller改写成

def index 
@convesations = current_user.conversations.page(params[:page])
end

后来看了原来的方法感觉自己这么写不是很合理 就是用rails console实验了一下 发现mailbox还分两个大的信箱一个是发件箱一个是收件箱 这样就明朗多了