首页 > 解决方案 > 基于has_one关系的rails查询

问题描述

class Hospital
 has_many: invoice_transaction, through: :invoices
 has_many: invoices
end 

class invoice
 belongs_to :hospital
end 

class InvoiceTransaction      
  belongs_to: invoice 
  has_one :hospital, through: :invoice
end 





hospital.invoice_transactions works well

现在我想InvoiceTransaction根据多个医院id查询

像这样的东西

InvoiceTransaction.joins(:hospital).find([.array of hospital ids..])

但这会返回空记录

标签: ruby-on-railsactiverecordassociations

解决方案


使用where而不是find在您使用时使用joins

where('name_of_the_table.id in (?)', [医院 ID 数组])

InvoiceTransaction.joins(:hospital).where('hospitals.id in (?)', [array of hospital ids])

推荐阅读