Проблемът е, че MongoDB няма никакъв начин за картографиране на Category
запишете в Ad
запис. Всичко, което знае, е, че Ad
записът има category_id
поле така 'category.domain_id'
винаги няма да върне нищо. Точковата нотация в заявките работи само за вградени документи, не и за препратки (които все още са второкласни граждани в MongoDB).
Така че, за да решите проблема си, ще ви трябват 2 заявки:
category_ids = Category.where(:domain_id => domain.id).map(&:_id)
Ad.where(:category_id.in => category_ids)