Rails 5 - 使用uniq属性查询记录

时间:2017-08-11 12:34:32

标签: ruby-on-rails postgresql activerecord

我正在使用Rails 5和Postgresql。 这个问题已经回答了以前版本的Rails(包括Rails 4,使用distinct,uniq等,但是由于它们已经被折旧,所以它对Rails 5都没有用)。

我有一个Upload模型,它具有uuid属性。 我想从枚举中获取具有不同uuid而不使用uniq的记录。

这是我的原始查询:

Upload.includes(:user, product: [:catalog]).where(file_type: "product_attachment", product_id: nil, user_id: current_user.id))

添加distinctselect时出现错误(似乎这些方法通常只用于返回模型中的一个属性,而我需要整个对象)。

如何在Rails 5中实现这一点?

使用示例数据进行编辑:

上传:

id: 1 
uuid: 8e8fece82b6b1368ab6f21852c625e85718d210e

id: 2
uuid: 842e7650b4bba97f097d9cf57f47d8160086b7cd

id: 3
uuid: 8e8fece82b6b1368ab6f21852c625e85718d210e

上传1和3具有相同的uuid,因此预期结果仅包含id为1和2的上传(具有不同的uuid)。

1 个答案:

答案 0 :(得分:0)

您可以使用group;它为您提供所有不同的记录,而无需使用uniq:

ABC.group(:uuid)