Activerecord 在Rails中将重复记录显示为一个

Activerecord 在Rails中将重复记录显示为一个,activerecord,Activerecord,我有一个销售信息表,每个产品一年中每个月都有12条记录。唯一独特的价值是销售总额 #<AccountMarginTarget id: 1, product_id: "123", sales: 2000> #<AccountMarginTarget id: 2, product_id: "123", sales: 50> #<AccountMarginTarget id: 2, product_id: "123", sales: 37>

我有一个销售信息表,每个产品一年中每个月都有12条记录。唯一独特的价值是销售总额

    #<AccountMarginTarget id: 1, product_id: "123", sales: 2000>
    #<AccountMarginTarget id: 2, product_id: "123", sales: 50>
    #<AccountMarginTarget id: 2, product_id: "123", sales: 37>
    #<AccountMarginTarget id: 2, product_id: "22", sales: 47>
    #<AccountMarginTarget id: 2, product_id: "22", sales: 74>
但是,在视图中显示所有记录时,有一个包含12条记录的列表是很麻烦的。我已经看过了
.join.group.uniq
等,但我仍然不知道哪种方法最好只列出重复项一次


为任何幼稚道歉

所以,我已经明白了这一点,对于实现这一点有点傻。由于我是Jr,我非常感谢以下方面的任何改进:)我将在查看代码时进行更新

由于我的表中有许多重复项,首先我需要将它们挑出来

unique_ids = @sale_records.map(&:product_id).uniq.map
然后我遍历惟一的_id并从匹配它的数据库中检索第一个结果:

@unique_product_sale_records = unique_ids.collect.each do | unique_id |
  SalesRecord.where(product_id: unique_id).first
end
@unique_product_sale_records = unique_ids.collect.each do | unique_id |
  SalesRecord.where(product_id: unique_id).first
end