我试着做一个查询,我相信,这是一个双连接调用。
@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/