Проблема с вашим запросом заключается в том, что вы основываетесь на таблицах базы данных с именем , а не на соглашение Rails о наличии множественных имен таблиц. Я могу привести пример похожий на ваш, это выглядит следующим образом:
Universe.joins(
galaxies: {
stars: {
planets: {
molecules: :atoms
}
}
}
).where(atoms: {id: 5})
И этот запрос предполагает у вас есть модели:
Universe
что has_many :galaxies
Galaxy
что has_many :stars
и belongs_to :universe
(как, например, имеет universe_id
)
Star
что has_many :planets
и belongs_to :galaxy
Planet
что has_many :molecules
и belongs_to :star
Molecule
что has_many :atoms
и belongs_to :planet
Atom
... просто belongs_to :molecule
http://stackoverflow.com/a/16131467/429758 должен быть полезным. –