组信息表单数据库

时间:2015-07-17 06:41:39

标签: ruby grouping

我需要帮助来分组数据库表中的信息。我的桌子(动物)看起来像:

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;

我尝试过功能groupgroup_by,但他们没有工作。我可以通过使用if创建一个函数,并将所有必要的信息放在数组中来实现,但是有没有可以帮助我的内置函数?

1 个答案:

答案 0 :(得分:0)

使用Enumerable方法的版本。使用方法nameanimal预测记录(如ActiveRecord)。

Table.all.group_by(&:name).inject({}) { |a, (k,v)| a[k] = v.map(&:animal) }