Извлекать записи из нескольких таблиц с помощью JOIN в rails 2

У меня есть записи, настроенные следующим образом

UserKycScanResults: id, user_kyc_scan_id, match_name  <- belongs to UserKycScan
UserKycScan: id, user_id, created_at                  <- belongs to User
User: id, firstname, lastname

Я пытаюсь написать объединение, чтобы найти имя пользователя, у которого есть запись в таблице user_kyc_scans, а дата записи в таблицу user_kyc_scan вчерашняя вместе с их match_name из таблицы user_kyc_scan_results, если она присутствует.

Я пробовал следующее

UserKycScanResult.joins("INNER JOIN user_kyc_scans ON user_kyc_scans.id = user_kyc_scan_results.user_kyc_scan_id
                INNER JOIN users ON users.id = user_kyc_scans.user_id").where("users.name = '#{submitted_first_name}', user_kyc_scans.created_at = #{Date.yesterday} ")

Но этот подход не работает. Любая помощь будет оценена по достоинству. И присоединяется, и где пункты не работают на рельсах 2

Пожалуйста, дайте мне любое решение, чтобы разобраться с этим

Спасибо.


person Abhradip    schedule 12.02.2018    source источник


Ответы (1)


Ваш запрос внутреннего соединения верен, но в rails 2 мы должны передавать соединения и условия следующим образом:

UserKycScanResult.all(:joins => "INNER JOIN user_kyc_scans ON user_kyc_scans.id = user_kyc_scan_results.user_kyc_scan_id 
                                 INNER JOIN users ON users.id = user_kyc_scans.user_id", 
                      :conditions => ["users.name = ? AND user_kyc_scans.created_at = ?", submitted_first_name, Date.yesterday])

Документ для справки: ruby on rails guides

Счастливого кодирования

person Ajay Barot    schedule 12.02.2018