1

私は、二重結合呼び出しであると信じているクエリを作成しようとしています。

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

顧客レコードの下で current_user に割り当てられている場合にのみ、支払いを探しています。

支払いは、結合テーブル ( payment_applications) を介して顧客に接続されます。従業員は、結合テーブル ( ) を通じてジョブに割り当てられますassignments

上記のクエリは正しいオブジェクトを返しますが、配列であるため、ページネーションに割り当てることができません。そのクエリを ActiveRecord 呼び出しに保つにはどうすればよいですか?

4

1 に答える 1

1

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)
于 2013-05-28T14:57:11.153 に答える