所以我有一个名为'Project'的模型,其中包含字段'unique_id'和'version'(以及其他不相关的字段,如name)。 unique_id对每个项目都是唯一的,每个项目都有多个版本,即。
unique_id |版本
1 | 1
1 | 2
2 | 1
我要做的是选择每个项目的最新版本并将其添加到@projects
以供我的视图使用(显示每个项目)。
我不知道如何做到这一点,但我的思考过程是使用Projects.group(:unique_id).count
来获取 unique_id 和计数(也就是版本)的哈希并使用该信息来拉取每个通过循环记录。这对我来说似乎很笨拙。我也知道有一个最大的功能,但不会拉记录,只有最大值。帮助?!
答案 0 :(得分:3)
按unique_id
分组并选择MAX
版本的记录:
Project.select('MAX(version), unique_id, id, name').group(:unique_id).all
答案 1 :(得分:3)
这应该符合您的要求:
Projects.group(:unique_id).having('Max(version) >= version')