【发布时间】:2014-10-14 12:37:57
【问题描述】:
我需要按如下方式组合类似的数组值:
发件人:
arr = ['abc', 'abc', 'eff', 'eff', 'foo', 'bar', 'bar', 'bar']
收件人:
merged_like_arr = [ ['abc', 'abc'], ['eff', 'eff'], ['foo'], ['bar', 'bar', 'bar']]
基本上有一个 ActiveRecord 对象,它按顺序返回记录集合。
aff=Registration.order('affiliate DESC')
aff.map{|code| code. affiliate }
# produces the following:
# arr = ['abc', 'abc', 'eff', 'eff', 'foo', 'bar', 'bar', 'bar']
我需要将arr 的数据形式更改为merged_like_arr(如上所示),以便我可以这样做:
merged_like_arr.sort_by{|arr|-arr.size}.first(10)
#=> [ ["bar", "bar", "bar"], ["eff", "eff"], ["abc", "abc"] ... ]
目的是通过查找他们的会员ID在注册表中使用的次数来找到系统中排名前10位的会员。
也欢迎替代实现。谢谢!
【问题讨论】:
标签: ruby-on-rails ruby arrays postgresql activerecord