rails Query на основе отношения has_one - PullRequest
0 голосов
/ 27 сентября 2019
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 на основе нескольких идентификаторов больниц

примерно так

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

, но при этом возвращаются пустые записи

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Немного более чистый синтаксис,

InvoiceTransaction.joins(:hospital).where(hospitals: { id: [array of hospital ids] })
1 голос
/ 27 сентября 2019

Используйте where вместо find при работе с joins

где ('name_of_the_table.id in (?)', [Массив идентификаторов больниц])

InvoiceTransaction.joins(:hospital).where('hospitals.id in (?)', [array of hospital ids])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...