Ber*_*rnd 4 ruby arrays ruby-on-rails
我创建了一个Ruby数组(Articles),其中包含重复预设值的属性(类别)(例如,以下之一:"Drink","Main","Side").因此,我想获得此类别属性的所有唯一值的列表.
我想到了类似的东西
Article.all.category.uniq
Run Code Online (Sandbox Code Playgroud)
......但那没用.这是一个示例数组:
[#<Article id: 1, category: "Drink">, #<Article id: 2, category: "Main">, #<Article id: 3, category: "Drink">, #<Article id: 4, category: "Side">, #<Article id: 5, category: "Drink">, ]
Run Code Online (Sandbox Code Playgroud)
我正在寻找的结果列表的内容应该是这样的:"饮料","主要","侧面"
luc*_*tte 17
Article.all.map {|a| a.category}.uniq
Run Code Online (Sandbox Code Playgroud)
应该做的工作.
我这样做:
Article.select("distinct category").map {|a| a.category}
Run Code Online (Sandbox Code Playgroud)
而不是lucapette的答案,因为这种操作在ruby中比在数据库中慢得多.
我的代码示例假设您正在使用某种SQL数据库.它与其他类型的数据库看起来不同.