这可能是已被问过但我无法找到的东西。我有一个包含以下三列的模型:[“id”,“category”,“name”],我想像这样组织我的页面:
标题(所有类别的列表,链接到包含该类别所有名称的表格以及该类别下的名称数量)
内容(每个类别一个表,列出该类别下的所有名称)
为了达到这个目的,我基本上需要一个名称集合的类别地图,没什么太花哨但我想知道最佳实践是什么。首先获取所有类别,然后为每个类别运行一个查询以获取名称似乎并不高效。我在java中会做的是获取结果集中的所有内容,迭代它并构建我提到的地图。不确定如何在rails中实现这一目标。
谢谢,
答案 0 :(得分:1)
h = {}
MyModel.all.sort_by(&:category).each do |m|
h[m.category] ||= []
h[m.category] << m.name
end
h.each do |category, names|
puts "#{category}: #{names.count} names"
end
h.each do |category, names|
puts "#{category}: #{names.sort * ', '}"
end