首页 > 解决方案 > 具有多列的 ActiveRecord uniq

问题描述

我正在尝试从User模型中查询唯一的记录(基于nameage),即删除任何重复项但保留它的第一条记录。

这在这里有效,但我如何使它与两列nameage.

User.all.uniq(&:name)

与此类似的东西

User.all.uniq(&:name, &:age)

标签: ruby-on-railspostgresqlactiverecord

解决方案


你可以做:User.select(:name, :age).distinct

注意:在 Rails 5+.uniq中已弃用,建议.distinct改用。https://edgeguides.rubyonrails.org/5_0_release_notes.html#active-record-deprecations


推荐阅读