在ActiveRecord中,可以使用order
和limit
方法来实现获取where条件下的最后20条记录。
假设我们有一个名为User
的模型,其中有一个created_at
字段表示用户创建的时间。我们想要获取创建时间在某个日期之后的最后20条用户记录,可以按照以下方式操作:
users = User.where("created_at > ?", Date.today - 7.days) # 获取创建时间在7天之后的用户记录
.order(created_at: :desc) # 按照创建时间倒序排序
.limit(20) # 限制结果数量为20条
在上述代码中,我们首先使用where
方法来筛选出创建时间在某个日期之后的用户记录。通过"created_at > ?"
这样的语法,我们可以使用占位符?
来传递参数,确保查询是安全的。
接下来,我们使用order
方法按照created_at
字段的倒序进行排序,以确保我们获取的是最后的20条记录。
最后,我们使用limit
方法来限制结果数量为20条。
现在,users
变量将包含满足条件的最后20条用户记录。
希望以上示例代码能够帮助到你!