2011-06-03 61 views
2

我有一个名为Shops的模型叫做品牌属性,品牌是一个文本字段并包含多个品牌。我想要做的是选择所有独特的品牌,并按照字母顺序排列显示它们选择完全不同的有效记录

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

该怎么办?

+0

“Shop#品牌”字段可以包含多个品牌:“rony,hoke,fike”。或者它只是一个单一的价值。 – Jits 2011-06-03 11:27:56

回答

1

如果Shop#brands可以容纳例如多次价值观:“罗尼,HOKE,FIKE”,那么我可以勉强建议做这样的事情:

@brands = Shop.all(:select => 'brands').each { |s| 
    s.brands.split(',').map { |b| 
    b.strip.downcase 
    } 
}.flatten.uniq.sort 

,你真的应该考虑一下你的数据在这里模式来防止这种骇客。你鼓励将品牌打入自己的表格+模型,并与Shop进行多对多的关系。

+0

感谢jits,是的,你是绝对正确的,这是一个不好的道路。我会按你的建议去做。 – andkjaer 2011-06-03 11:48:56