您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

ActiveRecord-从每个组中选择第一条记录

ActiveRecord-从每个组中选择第一条记录

我不确定如何在没有错误的实例上调用most_recent_chat_received_from_connected_users,这是您Conversation类的实例方法User,但是我会在会话模型中添加自定义查找器:

class Conversation < ActiveRecord::Base
  # ...

  def self.most_recent_for(user_id)
    select('DISTINCT ON (sender_id) *').where(reciever_id: user_id).order("sender_id, created_at DESC")
  end

  # For MysqL you Could have used:
  #
  # def self.most_recent_for(user_id)
  #   where(reciever_id: user_id).group("sender_id").order("created_at DESC")
  # end

  # ...
end

现在,您可以使用以下命令在控制器中进行所需的对话:

@conversations = Conversation.most_recent_for(current_user.id)
其他 2022/1/1 18:52:34 有423人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶