PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Rails - Verwenden von Join mit benutzerdefinierten benannten Assoziationen

where erwartet den eigentlichen Tabellennamen, es fügt ihn einfach in SQL ein:

Article.where(whatever: {you: 'want'}).to_sql
=> "SELECT `articles`.* FROM `articles` WHERE `whatever`.`you` = 'want'"

Sie können also verwenden:

Measurement.joins(:examination).where(test_structures: { year: 2016, month: 5 })

Aber es ist nicht gut

Dann sind Sie auf den Tabellennamen angewiesen, während Model solche Dinge abstrahieren sollte. Sie könnten merge verwenden :

Measurement.joins(:examination).merge(TestStructure.where(year: 2016, month: 5))