我试着做一个查询,我相信,这是一个双连接调用。

@customer.jobs.joins(:assignments).where('assignments.employee_id' => current_user.id).collect{|j|j.payments}.flatten

我正在寻找付款,只有在他们被分配到我的客户记录下我的当前用户。
付款通过联接表(payment_applications)连接到客户。通过联接表(assignments)将员工分配给作业。
上面的查询返回正确的对象,但它是一个数组,因此我不能将它们赋给分页。如何将该查询保持为ActiveRecord调用?

最佳答案

如果您想以付款结束,我建议您从这里开始查询:

@payments = Payment.for_customer(customer)

在你的模型中:
class Payment < ActiveRecord::Base
  def self.for_user(user)
    joins(:assignments).where('assignments.employee_id' => user.id)
  end
end

如果您想加入客户记录,请更改为
joins(:assignments => :customers)

关于mysql - 如何编写此语句,使它保持为ActiveRecord调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16795049/

10-09 18:15