选择不同的活动记录

时间:2011-06-03 11:04:17

标签: ruby-on-rails-3 activerecord

我有一个名为Shops的模型,其名称为品牌,品牌是文本字段,包含多个品牌。我想做的是选择所有独特的品牌,并按字母顺序显示它们

@brands = Shop.all(:select => 'distinct(brands)')

从这里做什么?

1 个答案:

答案 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建立多对多的关系。