Mysql RubyonRails数据获取问题

Mysql RubyonRails数据获取问题,mysql,ruby-on-rails-5,ruby-on-rails-6.1,Mysql,Ruby On Rails 5,Ruby On Rails 6.1,你好,我是rails的新手 我有一个名为“messages”的表,其中包含列current\u user\u id、to\u user\u id和created time 我正在尝试构建一个聊天应用程序,不同的用户可以单独聊天,这些消息将用各自的ID存储在messages表中 现在,为了在屏幕上打印消息 我面临一些问题 我需要一个查询,这样当前用户id和to用户id对话以及to用户id和当前用户id对话都将按最新创建的时间列出。我假设您有两个ActiveModel:用户和消息。确保您有如下课程:

你好,我是rails的新手

我有一个名为“messages”的表,其中包含列current\u user\u id、to\u user\u id和created time

我正在尝试构建一个聊天应用程序,不同的用户可以单独聊天,这些消息将用各自的ID存储在messages表中

现在,为了在屏幕上打印消息

我面临一些问题


我需要一个查询,这样当前用户id和to用户id对话以及to用户id和当前用户id对话都将按最新创建的时间列出。

我假设您有两个ActiveModel:用户和消息。确保您有如下课程:

class用户
在迁移中添加
t.timestamps
时,它会为您创建
created\u at
updated\u at
字段

现在,我将为您硬编码原始sql查询:

def get_消息(当前用户id、to用户id)
@messages=消息。其中('current_user_id=?或receiver_user_id=?或current_user_id=?或receiver_user_id=?'),
当前用户id、当前用户id、到用户id、到用户id)。订单('created_at DESC')
结束
你可以按顺序玩
order('created_at DESC')
如果你只想按升序玩,你可以用ASC或
order(:created_at)

您可以设置任何其他查询条件,如不显示已删除的消息等。您可以从RubyonRails的官方文档中了解更多信息