我有以下关系,因为相同的产品可以在多家商店中存在,因此DB将同一产品记录在数据库中使用不同的store_id,而每个商店的不同store_id,我还将每个产品的坐标存储现在,我的查询返回每个商店的标题重复产品。
为了快速修复,我如何将查询修改为仅返回最接近的产品,并可以按产品标题进行分组。顺便说一下
class Product < ActiveRecord::Base
belongs_to :store
end
class Store < ActiveRecord::Base
has_many :products
end
ID TITLE STORE_ID
1 product_1 1
2 product_1 2
3 product_1 3
4 product_2 1
5 product_2 2
6 product_2 3
我认为您在模型中有误解。如果可以在多家商店中使用相同的产品,则产品不属于商店。因为它可能是几个。
您应该将关联更改为has_and_belongs_to_many
或has_many through
。但是,如果您真的希望完成此查询,则可以在查询中使用group
方法。像Product.near(...).group(:title)
您也可以在轨道上过滤。假设它已经是有序集,类似于
@products.to_a.uniq(&:title)
将有效。