Activerecord 在Rails中将重复记录显示为一个
我有一个销售信息表,每个产品一年中每个月都有12条记录。唯一独特的价值是销售总额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>
#<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