我正在尝试查找属于客户端数组的所有付款。通过与客户之间的账单关系,付款有一个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