我想做一个查询,我相信,是一个双连接调用。
@customer.jobs.joins(:assignments).where('assignments.employee_id' => current_user.id).collect{|j|j.payments}.flatten
我正在寻找付款,只有当他们已经在我的客户记录下分配给我的current_user。
付款通过连接表(payment_applications
)连接到客户。员工通过连接表(assignments
)分配给job。
上面的查询返回正确的对象,但它是一个数组,所以我不能将它们分配给分页。我如何保持查询ActiveRecord调用?
如果您想以Payments结束,我建议您从那里开始查询:
@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)