ruby-on-rails - 分组时选择最大值的记录

标签 ruby-on-rails activerecord

所以我有一个名为“Project”的模型,其中包含“unique_id”和“version”字段(以及其他不相关的字段,如名称)。 unique_id 对于每个项目都是唯一的,每个项目都有多个版本,即。

唯一标识 |版本
1                                               1
1                                               2
2     | 1

我要做的是选择每个项目的最新版本并将它们添加到 @projects供我的 View 使用(显示每个项目的位置)。

我不知道该怎么做,但我的想法是使用 Projects.group(:unique_id).count获取 unique_id 和 count 的哈希(又名版本)并使用该信息通过循环拉取每条记录。这对我来说似乎很笨拙。我也知道有一个最大值功能,但它不会拉记录,只有最大值。帮助?!

最佳答案

这应该满足您的要求:

Projects.group(:unique_id).having('Max(version) >= version')

关于ruby-on-rails - 分组时选择最大值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26593936/

相关文章:

ruby-on-rails - 是否可以使用 rake 在 Rails 中模拟页面请求?

ruby-on-rails - 当我尝试运行 heroku run rake db :migrate 时出现 Postgres 错误

ruby-on-rails - HABTM关系查找所有记录,排除一些基于关联的记录

ruby-on-rails - 与 rails 4 + pg 列比较的日期不存在

sql - ActiveRelation 准备好迎接黄金时段了吗?

javascript - 限制 Javascript 文件仅在一页中使用(Ruby on Rails)

ruby-on-rails - Factory Girl 有很多关系(和 protected 属性)

ruby-on-rails - 鸭子类型(duck typing)我们的 rails 模型以显示在 View 中

ruby-on-rails - rails : Using different model fields in ActiveRecord Concern

ruby-on-rails - ActiveRecord::Relation 对象如何调用类方法