Arel вызывает бесконечный цикл агрегирования

У меня проблемы с использованием Arel для агрегирования двух столбцов в одном запросе. Когда я запускаю это, весь сервер зависает на минуту, прежде чем rails dev-server выйдет из строя. Подозреваю бесконечный цикл :).

Возможно, я неправильно понял всю концепцию Arel, и был бы признателен, если бы кто-нибудь мог взглянуть на нее.

Ожидаемый результат этого запроса примерно такой: [{: user_id => 1,: sum_account_charges => 300,: sum_paid_debts => 1000}, ...]

a_account_charges = Table(:account_charges)
a_paid_debts = Table(:paid_debts)
a_participants = Table(:expense_accounts_users)

account_charge_sum = a_account_charges
  .where(a_account_charges[:expense_account_id].eq(id))
  .group(a_account_charges[:user_id])
  .project(a_account_charges[:user_id], a_account_charges[:cost].sum)

paid_debts_sum = a_paid_debts
 .where(a_paid_debts[:expense_account_id].eq(id))
 .group(a_paid_debts[:from_user_id])
 .project(a_paid_debts[:from_user_id], a_paid_debts[:cost].sum)

charges = a_participants
 .where(a_participants[:expense_account_id].eq(id))
 .join(account_charge_sum)
 .on(a_participants[:user_id].eq(account_charge_sum[:user_id]))
 .join(paid_debts_sum)
 .on(a_participants[:user_id].eq(paid_debts_sum[:from_user_id]))
7
задан finpingvin 13 October 2010 в 19:55
поделиться