获取rails中每个不同记录的所有列

时间:2015-12-17 07:18:36

标签: mysql ruby-on-rails ruby activerecord

我想在rails中获得不同的记录。 为此,我看到了 Rails: how can I get unique values from column

但问题是,通过这个解决方案,我只得到了ID。

ViewsLog.uniq.pluck(:unit_id)
[24, 21, 23, 4, 16, 5, 7]

我想要uniq unit_id的所有列

2 个答案:

答案 0 :(得分:7)

您可以使用group;它为您提供了所有不同的记录:

 ViewsLog.group(:unit_id)

答案 1 :(得分:3)

在rails中可以使用不同的记录

ViewsLog.distinct(:unit_id)

如果你正在使用postgres并且在表中有json类型,那么需要写成如下

ViewsLog.select('distinct on (views_logs.unit_id) views_logs.*')

因为如果你的表中存在json类型,postgres不支持distinct。

相关问题