Ruby on rails 基于在日期创建的\u获取第n个用户

Ruby on rails 基于在日期创建的\u获取第n个用户,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,原始问题: 假设我的数据库中有10个用户,我想根据日期的排序结果得到第6个(或第3个,或第8个)用户。我该怎么做 编辑问题: 假设我的数据库中有10个用户,并且我有一个特定的用户,如果我在创建日期对它们进行排序,我如何确定它是哪个用户?(因此用户X是基于创建的_at的所有用户中的第n个用户) 抱歉搞混了 这应该有效:(显然必须根据需要更改偏移值) 好的,经过编辑的问题使这个问题变得有点复杂。不确定ActiveRecord是否适合在这里使用。有些数据库有一种虚拟的“行数”,您可以使用它来实现这一点

原始问题: 假设我的数据库中有10个用户,我想根据日期的排序结果得到第6个(或第3个,或第8个)用户。我该怎么做

编辑问题: 假设我的数据库中有10个用户,并且我有一个特定的用户,如果我在创建日期对它们进行排序,我如何确定它是哪个用户?(因此用户X是基于创建的_at的所有用户中的第n个用户)

抱歉搞混了

这应该有效:(显然必须根据需要更改偏移值)

好的,经过编辑的问题使这个问题变得有点复杂。不确定ActiveRecord是否适合在这里使用。有些数据库有一种虚拟的“行数”,您可以使用它来实现这一点。但假设我们没有。SQL本身无法做到这一点,因此您只能计算比所查找的记录“少”的记录数

假设我们已找到相关用户,即
用户

然后我们可以做:

User.where("created_at < :created_at", created_at: user.created_at).count
User.where(“created_at<:created_at”,created_at:User.created_at)。计数
至少我能想出最好的

 User.order("created_at DESC").limit(1).offset(6)
     or
 User.order("created_at DESC").limit(1).offset(6)
它的工作方式如下:

 select * from users order by created_at DESC LIMIT 5 OFFSET 30;

谢谢,这很有效,但我意识到我的问题表述错误,对不起!
 select * from users order by created_at DESC LIMIT 5 OFFSET 30;