ruby-on-rails - 如何订购邮箱收件箱?

标签 ruby-on-rails ruby ruby-on-rails-4 mailboxer

我在我的 Rails 应用程序中使用 mailboxer gem,我想对我的收件箱消息进行排序,这样当用户收到新消息时,我想收到通知或跟踪消息已读消息和未读消息并命令消息在页面顶部显示未读/新消息。

这是我的对话 Controller

class ConversationsController < ApplicationController
  before_action :get_mailbox
  before_action :get_conversation, except: [:index]

  def index
    @unread_messages = @mailbox.inbox(unread: true).count
    @conversations = @mailbox.inbox({page: params[:page], per_page: 10})
  end

  private

  def get_conversation
    @conversation ||= @mailbox.conversations.find(params[:id])
  end

  def get_mailbox
    @mailbox ||= current_user.mailbox
  end
end

我尝试通过以下方式订购邮件:

@conversations = @mailbox.inbox({page: params[:page], per_page: 10}).joins(:receipts).select("mailboxer_conversations.*, mailboxer_receipts.*").order('mailboxer_receipts.is_read')

但是没有用。

请提出解决方案。

最佳答案

试试这个,

def index
  @unread_messages = @mailbox.inbox(is_read:false).count
  @conversations = @mailbox.inbox.page(params[:page]).per(10)
end

默认情况下,收件箱会按顺序在顶部显示最新消息,例如,当您键入 @mailbox.inbox.first 时,您实际上是在提取最后一条(最新)消息。

关于ruby-on-rails - 如何订购邮箱收件箱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31259689/

相关文章:

ruby-on-rails - 在 Rails 中,我可以在不进行 EDIT 操作的情况下修改记录吗?

ruby - 操作 Ruby 类默认值

ruby - 部署 ember-cli 和 rails api

mysql - rake db :migrate 的问题

ruby-on-rails - 升级到 ruby​​ 2.3.0 NameError: uninitialized constant I18n::Config::Backend

mysql - Ruby/Rails - 动态指定类的连接属性

javascript - 进行 ajax 调用后调用方法时出现问题

ruby - 从现在开始获取当前 1 年作为数字

arrays - 当所有跳跃的长度相同并且某些位置无法降落时,我可以通过一个范围移动的最小跳跃是多少?

ruby-on-rails - 使用作为方法的值在 ruby​​ 中搜索哈希