Mysql 如何编写此语句使其保持为ActiveRecord调用?

Mysql 如何编写此语句使其保持为ActiveRecord调用?,mysql,ruby-on-rails,join,Mysql,Ruby On Rails,Join,我试图提出一个疑问,我相信,这是一个双重连接调用 @customer.jobs.joins(:assignments).where('assignments.employee_id' => current_user.id).collect{|j|j.payments}.flatten 我正在寻找付款,前提是付款已分配给我的客户记录下的当前用户 付款通过联接表(payment\u应用程序)连接到客户。通过联接表(assignments)将员工分配到作业 上面的查询返回正确的对象,但它是一个

我试图提出一个疑问,我相信,这是一个双重连接调用

@customer.jobs.joins(:assignments).where('assignments.employee_id' => current_user.id).collect{|j|j.payments}.flatten
我正在寻找付款,前提是付款已分配给我的客户记录下的当前用户

付款通过联接表(
payment\u应用程序
)连接到客户。通过联接表(
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

如果您希望最终获得付款,我建议您在此处开始查询:

@payments = Payment.for_customer(customer)
在您的模型中:

class Payment < ActiveRecord::Base
  def self.for_user(user)
    joins(:assignments).where('assignments.employee_id' => user.id)
  end
end

你用什么分页?Kaminari允许对数组进行分页:,您确定您的分页工具只对关系有效吗?对于客户、付款、用户,您的模型是什么样子的?您使用什么进行分页?Kaminari允许对数组进行分页:,你确定你的分页工具只对关系有效吗?你的模型对客户、付款、用户是什么样子的?付款与工作分配无关。付款与payment_应用程序相关联,payment_应用程序是连接付款和作业的联接表。作业通过
assignments
与员工相连。payments=>payment\u applications=>Jobs(可以有很多作业)=>assignments=>Employees(可以有很多员工),所以将其更改为joins(:payments=>:payment\u applications=>:Jobs=>:assignments=>:Employees)我想我不知道如何用语法编写它但我只是为你做的。付款与任务无关。付款与payment_应用程序相关联,payment_应用程序是连接付款和作业的联接表。作业通过
assignments
与员工相连。payments=>payment\u applications=>Jobs(可以有很多作业)=>assignments=>Employees(可以有很多员工),所以将其更改为joins(:payments=>:payment\u applications=>:Jobs=>:assignments=>:Employees)我想我不知道如何用语法编写它但我只是为你做的。