我正在使用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))
添加distinct
或select
时出现错误(似乎这些方法通常只用于返回模型中的一个属性,而我需要整个对象)。
如何在Rails 5中实现这一点?
使用示例数据进行编辑:
上传:
id: 1
uuid: 8e8fece82b6b1368ab6f21852c625e85718d210e
id: 2
uuid: 842e7650b4bba97f097d9cf57f47d8160086b7cd
id: 3
uuid: 8e8fece82b6b1368ab6f21852c625e85718d210e
上传1和3具有相同的uuid,因此预期结果仅包含id为1和2的上传(具有不同的uuid)。
答案 0 :(得分:0)
您可以使用group;
它为您提供所有不同的记录,而无需使用uniq:
ABC.group(:uuid)