我有一个名为Shops的模型,其名称为品牌,品牌是文本字段,包含多个品牌。我想做的是选择所有独特的品牌,并按字母顺序显示它们
@brands = Shop.all(:select => 'distinct(brands)')
从这里做什么?
答案 0 :(得分:1)
如果Shop#brands
可以包含多个值,例如:“rony,hoke,fike”,那么我可能不情愿地建议做这样的事情:
@brands = Shop.all(:select => 'brands').each { |s|
s.brands.split(',').map { |b|
b.strip.downcase
}
}.flatten.uniq.sort
但是,你应该在这里考虑一下你的数据模型以防止这样的hackery。您可以将品牌分解为自己的表+模型,并与Shop
建立多对多的关系。