Если ваши ассоциации установлены правильно, вы должны сделать следующее:
@topic.answers
Похоже, что то, что вы ищете.Убедитесь, что вы правильно настроили свои ассоциации.Mongoid очень простит при определении ассоциаций, поэтому может показаться, что они настроены правильно, когда на самом деле существует проблема, такая как несовпадение имен в references_many
и referenced_in
.
Если есть веская причина, по которой вышеуказанное не работает, и вам нужно использовать запрос, вы можете использовать этот простой запрос:
@answers = Answer.where(:topic_ids => @topic.id)
Это будет соответствовать любой записи Answer
чьи topic_ids включают предоставленный идентификатор.Синтаксис для полей массива такой же, как и для полей с одним значением, таких как Answer.where(:title => 'Foo')
.MongoDB будет интерпретировать запрос по-разному в зависимости от того, является ли поле массивом (проверьте, находится ли указанное значение в массиве) или одним значением (проверьте, совпадает ли указанное значение).
Вот немного больше информациио том, как MongoDB обрабатывает запросы к массивам: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-ValueinanArray