我正在嘗試查找屬於客戶端數組的所有付款。通過與客戶之間的賬單關係,付款有一個has_one。如何通過數組通過關係查找所有記錄
的車型包括:
class Payment < ActiveRecord::Base
belongs_to :bill
has_one :client, through: :bill
class Client < ActiveRecord::Base
has_many :bills
has_many :payments, through: :bills
class Bill < ActiveRecord::Base
belongs_to :client
has_many :payments
我試圖找到與下面的查詢
@payments = Payment.joins(:bills).where('bill.client_id IN (?)', [1,2,3,4])
卻得到了一個PG超時消息
試過.includes而不是.joins並且還收到PG超時消息
並且還嘗試了
Payment.includes(:bill).where(bills: { 'client_id IN (?)', [1,2,3,4] })
感謝您的幫助。
你的數據庫有多大?你有bill_id的索引嗎?即它只是窒息你有多少數據? – 2015-03-19 01:02:51
另外 - 你有一個客戶協會的付款...你試過類似'Payment.joins(:client).where(「clients.id」=> [1,2,3,4])' – 2015-03-19 01:04:06
在dev ,沒有太多的記錄,但是在賬單表上有一個client_id的索引,我嘗試了客戶端上的連接,但是它也超時了 – Steve 2015-03-19 01:14:13