Ben*_*Ben 2 activerecord ruby-on-rails
因此,我有一个名为“Project”的模型,其中包含“unique_id”和“version”字段(以及名称等其他不相关字段)。unique_id 对每个项目都是唯一的,每个项目都有多个版本,即。
unique_id | 版本
1 | 1
1 | 2
2 | 1
我想要做的是选择每个项目的最新版本并将它们添加到@projects我的视图中(显示每个项目的位置)。
我不知道如何做到这一点,但我的思考过程是使用Projects.group(:unique_id).count获取unique_id和计数(也称为版本)的哈希值,并使用该信息通过循环提取每条记录。这对我来说似乎很笨拙。我也知道有一个最大值函数,但它不会拉记录,只有最大值。帮助?!
这应该可以满足您的要求:
Projects.group(:unique_id).having('Max(version) >= version')
Run Code Online (Sandbox Code Playgroud)
按 分组unique_id并选择具有MAX版本的记录:
Project.select('MAX(version), unique_id, id, name').group(:unique_id).all
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8509 次 |
| 最近记录: |