ruby-on-rails - Ruby on Rails 按 id(和版本?)排序

标签 ruby-on-rails ruby ruby-on-rails-3 activerecord

在尝试使用我从日志中获取的 id 排序(和分页)进行搜索时:

SELECT `audits`.* FROM `audits` ORDER BY version, id DESC LIMIT 50 OFFSET 0

我目前正在使用这段代码:

@records = Audit.order("id DESC").page(page).per(50)

问题是检索到的列表没有按 id 降序正确排序。

顺便说一句,我正在使用 audited-activerecord gem 进行审计,这有关系吗?

最佳答案

我猜你的 gem 正在为按版本排序的审核模型设置默认范围,所以目前它按版本列升序排序,并且只有当两条记录相同时,它按 id 降序排列。

要解决此问题,您可以将 unscoped 添加到您的链中:

Audit.unscoped.order("id DESC").page(page).per(50)

关于ruby-on-rails - Ruby on Rails 按 id(和版本?)排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11057418/

相关文章:

ruby-on-rails - 在 Ruby 1.9 中使用 instance_eval 进行常量查找

ruby-on-rails - 如何仅从 url 中提取域?

ruby-on-rails - ruby compass 错误 : Failed to build gem native extension

sql - 使用模型延迟加载/缓存 SQL 查询结果

使用 ACL 调用 upload_file 时出现 Ruby S3 "Access Denied"错误

ruby - 如何在我的 Rspec 请求规范中跳过中间件?

ruby-on-rails - 如何使 Rails 关系可访问?

ruby-on-rails - 如何将分解为数据库的模型构建为 36 个表?

ruby-on-rails - NoMethodError in Pages#home undefined method `environment' for nil :NilClass

ruby-on-rails - 更改默认的 Rails 应用程序