在数据库级别匹配记录

时间:2017-08-21 05:03:52

标签: ruby-on-rails ruby-on-rails-5

我在rails 5上使用Ruby,我有一个名为Transaction(reference,id)的表。此表格有nth transactions,但在每个点上,最多2个交易具有相同的reference number但不同的ids。如何匹配或协调两个transactions与匹配引用或在数据库级别的一个选择行中将它们配对?(尝试使用循环,对于大型事务来说太慢)。使用postgresql

1 个答案:

答案 0 :(得分:1)

使用分组

Transaction.group_by(&:reference).each do |reference, transaction|
  p "#{reference} -> #{transaction.map(&:class).join(', ')}"
end

output like this 
"#reference number -> Transaction"
"#reference number -> Transaction"
"#reference number -> Transaction, Transaction"

试试这个