ruby-on-rails - 如何按 rails 3 中的两个条件分组并循环遍历它们

标签 ruby-on-rails ruby ruby-on-rails-3 group-by

好的,我有一个销售模式

recent_sales = Sale.recent
 => [#<Sale id: 7788, contact_id: 9988, purchasing_contact_id: 876, event_id: 988, #<BigDecimal:7fdb4ac06fe8,'0.0',9(18)>, fulfilled_at: nil, skip_print: nil, convention_id: 6, refund_fee: #<BigDecimal:7fdb4ac06de0,'0.0',9(18)>, processing: false>, #<Sale id: 886166, , contact_id: 7775,

recent_sales.count
=> 32

我知道我可以做到这一点

grouped_sales = recent_sales.group_by(&:contact_id).map {|k,v| [k, v.length]}
=> [[9988, 10], [7775, 22]]

但我真正需要的不仅仅是对 contact_id 进行分组,还要对 event_id 进行分组,因此最终结果如下所示

=> [[9988, 988, 5], [9988, 977, 5], [7775, 988, 2], [7775, 977, 20]]

所以我有 event_id 并且分组正确地将它们分开......关于如何做到这一点的任何想法

我试过了

 recent_sales.group('contact_id, event_id').map {|k,v| [k, k.event, v.length]}

但是不行

最佳答案

grouped_sales = recent_sales.group_by { |s| [s.contact_id, s.event_id] }
                .map { |k,v| [k.first, k.last, v.length] }

关于ruby-on-rails - 如何按 rails 3 中的两个条件分组并循环遍历它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11065945/

相关文章:

ruby-on-rails - 行动邮件可以引发哪些异常(exception)

ruby - 使用 Ruby 执行命令行时如何转义竖线?

ruby-on-rails - 在 Rails ActiveRecord 查询中有条件地链接 where 子句

ruby-on-rails - 无法使用 shoulda 匹配器获得唯一性验证测试通过

ruby-on-rails - has_one 不更新属性 id?

ruby-on-rails - Ruby on Rails : "couldn' t find file 'jquery-ui' "

javascript - 无法使用 Watir 从特定网页抓取数据

ruby - 如何每小时执行一个函数并将结果添加到 Rails 中的数据库中?

ruby-on-rails - rails : deleting a remote file

ruby-on-rails - has_one关联的嵌套属性