where
espera o nome real da tabela, apenas o insere no SQL:Article.where(whatever: {you: 'want'}).to_sql
=> "SELECT `articles`.* FROM `articles` WHERE `whatever`.`you` = 'want'"
Então você pode usar:
Measurement.joins(:examination).where(test_structures: { year: 2016, month: 5 })
Mas não é bom
Então você depende do nome da tabela enquanto o Model deve abstrair essas coisas. Você pode usar
merge
:Measurement.joins(:examination).merge(TestStructure.where(year: 2016, month: 5))