我需要帮助来分组数据库表中的信息。我的桌子(动物)看起来像:
id name animal
1 john dog
2 kate cat
3 jack mouse
4 jack cat
5 john cow
6 jack elepahnt
我希望按名称对它们进行分组,使它看起来像这样:
john: dog, cow;
kate: cat;
jack: mouse, cat, elephant;
我尝试过功能group
,group_by
,但他们没有工作。我可以通过使用if
创建一个函数,并将所有必要的信息放在数组中来实现,但是有没有可以帮助我的内置函数?
答案 0 :(得分:0)
使用Enumerable
方法的版本。使用方法name
和animal
预测记录(如ActiveRecord
)。
Table.all.group_by(&:name).inject({}) { |a, (k,v)| a[k] = v.map(&:animal) }