問題は、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)