2011-02-06 2 views
1

У меня есть модель пользователя, модель тренировки и модель упражнений. Я использую Devise для управления пользователями и MongoID для взаимодействия с MongoDB.Запрос MongoID для коллекции, которая ссылается на коллекцию, которая ссылается на коллекцию

Пользователь references_many: тренировками
Workout references_many: упражнения и referenced_in: пользователь
Упражнение referenced_in: тренировки

Как запрос к базе данных, чтобы дать мне список всех current_user Упражнения. Я не сохранил user.id в коллекции упражнений, только workout.id.

Возможно ли, или я должен переделать модель для хранения user_id как в коллекциях упражнений, так и в тренировках?

Благодаря

ответ

2

Как о чем-то вроде этого:

workout_ids = Workout.where (: user_id => current_user.id) .all.collect {| ш | w.id}

упражнения = Exercise.where (: workout_id => { "$ в" => workout_ids})

+0

Спасибо, но я получаю сообщение об ошибке о том, что я не могу сериализовать объект класса пользователя: HTTP: //d.pr/myTZ – Hutch

+0

Я обновил пример, чтобы передать «current_user.id» вместо «current_user». – jared

Смежные вопросы