相关疑难解决方法(0)

Arel在聚合上导致无限循环

我在使用Arel在同一查询中聚合2列时遇到问题.当我运行它时,整个服务器在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]))
Run Code Online (Sandbox Code Playgroud)

ruby sql ruby-on-rails arel ruby-on-rails-3

7
推荐指数
1
解决办法
565
查看次数

标签 统计

arel ×1

ruby ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1

sql ×1